Mercurial > octave
changeset 29646:3e8bc8bee8e9
liboctave/array: Add visibility flags to functions declared in headers (bug #60567).
* liboctave/array/boolMatrix.h, liboctave/array/boolNDArray.h,
liboctave/array/boolSparse.h, liboctave/array/CColVector.h,
liboctave/array/CDiagMatrix.h, liboctave/array/chMatrix.h,
liboctave/array/chNDArray.h, liboctave/array/CMatrix.h,
liboctave/array/CNDArray.h, liboctave/array/CRowVector.h,
liboctave/array/CSparse.h, liboctave/array/dColVector.h,
liboctave/array/dDiagMatrix.h, liboctave/array/DiagArray2.h,
liboctave/array/dim-vector.h, liboctave/array/dMatrix.h,
liboctave/array/dNDArray.h, liboctave/array/dRowVector.h,
liboctave/array/fCColVector.h, liboctave/array/fCDiagMatrix.h,
liboctave/array/fCMatrix.h, liboctave/array/fCNDArray.h,
liboctave/array/fColVector.h, liboctave/array/fCRowVector.h,
liboctave/array/fDiagMatrix.h, liboctave/array/fMatrix.h,
liboctave/array/fNDArray.h, liboctave/array/fRowVector.h,
liboctave/array/idx-vector.h, liboctave/array/intNDArray.h,
liboctave/array/MArray.h, liboctave/array/MDiagArray2.h,
liboctave/array/PermMatrix.h: Add visibility flags to functions that are
declared (but not defined) in headers.
line wrap: on
line diff
--- a/liboctave/array/CColVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/CColVector.h Mon May 10 23:27:38 2021 +0200 @@ -59,7 +59,7 @@ ComplexColumnVector (const Array<Complex>& a) : MArray<Complex> (a.as_column ()) { } - explicit ComplexColumnVector (const ColumnVector& a); + explicit OCTAVE_API ComplexColumnVector (const ColumnVector& a); ComplexColumnVector& operator = (const ComplexColumnVector& a) { @@ -67,39 +67,43 @@ return *this; } - bool operator == (const ComplexColumnVector& a) const; - bool operator != (const ComplexColumnVector& a) const; + OCTAVE_API bool operator == (const ComplexColumnVector& a) const; + OCTAVE_API bool operator != (const ComplexColumnVector& a) const; // destructive insert/delete/reorder operations - ComplexColumnVector& insert (const ColumnVector& a, octave_idx_type r); - ComplexColumnVector& insert (const ComplexColumnVector& a, octave_idx_type r); + OCTAVE_API ComplexColumnVector& + insert (const ColumnVector& a, octave_idx_type r); + OCTAVE_API ComplexColumnVector& + insert (const ComplexColumnVector& a, octave_idx_type r); - ComplexColumnVector& fill (double val); - ComplexColumnVector& fill (const Complex& val); - ComplexColumnVector& fill (double val, - octave_idx_type r1, octave_idx_type r2); - ComplexColumnVector& fill (const Complex& val, - octave_idx_type r1, octave_idx_type r2); + OCTAVE_API ComplexColumnVector& fill (double val); + OCTAVE_API ComplexColumnVector& fill (const Complex& val); + OCTAVE_API ComplexColumnVector& + fill (double val, octave_idx_type r1, octave_idx_type r2); + OCTAVE_API ComplexColumnVector& + fill (const Complex& val, octave_idx_type r1, octave_idx_type r2); - ComplexColumnVector stack (const ColumnVector& a) const; - ComplexColumnVector stack (const ComplexColumnVector& a) const; + OCTAVE_API ComplexColumnVector stack (const ColumnVector& a) const; + OCTAVE_API ComplexColumnVector stack (const ComplexColumnVector& a) const; - ComplexRowVector hermitian (void) const; - ComplexRowVector transpose (void) const; + OCTAVE_API ComplexRowVector hermitian (void) const; + OCTAVE_API ComplexRowVector transpose (void) const; friend OCTAVE_API ComplexColumnVector conj (const ComplexColumnVector& a); // resize is the destructive equivalent for this one - ComplexColumnVector extract (octave_idx_type r1, octave_idx_type r2) const; + OCTAVE_API ComplexColumnVector + extract (octave_idx_type r1, octave_idx_type r2) const; - ComplexColumnVector extract_n (octave_idx_type r1, octave_idx_type n) const; + OCTAVE_API ComplexColumnVector + extract_n (octave_idx_type r1, octave_idx_type n) const; // column vector by column vector -> column vector operations - ComplexColumnVector& operator += (const ColumnVector& a); - ComplexColumnVector& operator -= (const ColumnVector& a); + OCTAVE_API ComplexColumnVector& operator += (const ColumnVector& a); + OCTAVE_API ComplexColumnVector& operator -= (const ColumnVector& a); // matrix by column vector -> column vector operations @@ -127,10 +131,10 @@ // other operations - Complex min (void) const; - Complex max (void) const; + OCTAVE_API Complex min (void) const; + OCTAVE_API Complex max (void) const; - ColumnVector abs (void) const; + OCTAVE_API ColumnVector abs (void) const; // i/o
--- a/liboctave/array/CDiagMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/CDiagMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -72,7 +72,7 @@ octave_idx_type c) : MDiagArray2<Complex> (a, r, c) { } - explicit ComplexDiagMatrix (const DiagMatrix& a); + explicit OCTAVE_API ComplexDiagMatrix (const DiagMatrix& a); ComplexDiagMatrix (const MDiagArray2<Complex>& a) : MDiagArray2<Complex> (a) { } @@ -81,23 +81,26 @@ ComplexDiagMatrix (const DiagArray2<U>& a) : MDiagArray2<Complex> (a) { } - bool operator == (const ComplexDiagMatrix& a) const; - bool operator != (const ComplexDiagMatrix& a) const; + OCTAVE_API bool operator == (const ComplexDiagMatrix& a) const; + OCTAVE_API bool operator != (const ComplexDiagMatrix& a) const; - ComplexDiagMatrix& fill (double val); - ComplexDiagMatrix& fill (const Complex& val); - ComplexDiagMatrix& fill (double val, - octave_idx_type beg, octave_idx_type end); - ComplexDiagMatrix& fill (const Complex& val, - octave_idx_type beg, octave_idx_type end); - ComplexDiagMatrix& fill (const ColumnVector& a); - ComplexDiagMatrix& fill (const ComplexColumnVector& a); - ComplexDiagMatrix& fill (const RowVector& a); - ComplexDiagMatrix& fill (const ComplexRowVector& a); - ComplexDiagMatrix& fill (const ColumnVector& a, octave_idx_type beg); - ComplexDiagMatrix& fill (const ComplexColumnVector& a, octave_idx_type beg); - ComplexDiagMatrix& fill (const RowVector& a, octave_idx_type beg); - ComplexDiagMatrix& fill (const ComplexRowVector& a, octave_idx_type beg); + OCTAVE_API ComplexDiagMatrix& fill (double val); + OCTAVE_API ComplexDiagMatrix& fill (const Complex& val); + OCTAVE_API ComplexDiagMatrix& + fill (double val, octave_idx_type beg, octave_idx_type end); + OCTAVE_API ComplexDiagMatrix& + fill (const Complex& val, octave_idx_type beg, octave_idx_type end); + OCTAVE_API ComplexDiagMatrix& fill (const ColumnVector& a); + OCTAVE_API ComplexDiagMatrix& fill (const ComplexColumnVector& a); + OCTAVE_API ComplexDiagMatrix& fill (const RowVector& a); + OCTAVE_API ComplexDiagMatrix& fill (const ComplexRowVector& a); + OCTAVE_API ComplexDiagMatrix& + fill (const ColumnVector& a, octave_idx_type beg); + OCTAVE_API ComplexDiagMatrix& + fill (const ComplexColumnVector& a, octave_idx_type beg); + OCTAVE_API ComplexDiagMatrix& fill (const RowVector& a, octave_idx_type beg); + OCTAVE_API ComplexDiagMatrix& + fill (const ComplexRowVector& a, octave_idx_type beg); ComplexDiagMatrix hermitian (void) const { return MDiagArray2<Complex>::hermitian (std::conj); } @@ -109,40 +112,41 @@ // resize is the destructive analog for this one - ComplexMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API ComplexMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; // extract row or column i - ComplexRowVector row (octave_idx_type i) const; - ComplexRowVector row (char *s) const; + OCTAVE_API ComplexRowVector row (octave_idx_type i) const; + OCTAVE_API ComplexRowVector row (char *s) const; - ComplexColumnVector column (octave_idx_type i) const; - ComplexColumnVector column (char *s) const; + OCTAVE_API ComplexColumnVector column (octave_idx_type i) const; + OCTAVE_API ComplexColumnVector column (char *s) const; - ComplexDiagMatrix inverse (octave_idx_type& info) const; - ComplexDiagMatrix inverse (void) const; - ComplexDiagMatrix pseudo_inverse (double tol = 0.0) const; + OCTAVE_API ComplexDiagMatrix inverse (octave_idx_type& info) const; + OCTAVE_API ComplexDiagMatrix inverse (void) const; + OCTAVE_API ComplexDiagMatrix pseudo_inverse (double tol = 0.0) const; - bool all_elements_are_real (void) const; + OCTAVE_API bool all_elements_are_real (void) const; // diagonal matrix by diagonal matrix -> diagonal matrix operations - ComplexDiagMatrix& operator += (const DiagMatrix& a); - ComplexDiagMatrix& operator -= (const DiagMatrix& a); + OCTAVE_API ComplexDiagMatrix& operator += (const DiagMatrix& a); + OCTAVE_API ComplexDiagMatrix& operator -= (const DiagMatrix& a); // other operations ComplexColumnVector extract_diag (octave_idx_type k = 0) const { return MDiagArray2<Complex>::extract_diag (k); } - ComplexDET determinant (void) const; - double rcond (void) const; + OCTAVE_API ComplexDET determinant (void) const; + OCTAVE_API double rcond (void) const; // i/o - friend std::ostream& operator << (std::ostream& os, - const ComplexDiagMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const ComplexDiagMatrix& a); };
--- a/liboctave/array/CMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/CMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -85,86 +85,87 @@ template <typename U> ComplexMatrix (const Array<U>& a) : ComplexNDArray (a.as_matrix ()) { } - ComplexMatrix (const Matrix& re, const Matrix& im); + OCTAVE_API ComplexMatrix (const Matrix& re, const Matrix& im); - explicit ComplexMatrix (const Matrix& a); + explicit OCTAVE_API ComplexMatrix (const Matrix& a); - explicit ComplexMatrix (const RowVector& rv); + explicit OCTAVE_API ComplexMatrix (const RowVector& rv); - explicit ComplexMatrix (const ColumnVector& cv); + explicit OCTAVE_API ComplexMatrix (const ColumnVector& cv); - explicit ComplexMatrix (const DiagMatrix& a); + explicit OCTAVE_API ComplexMatrix (const DiagMatrix& a); - explicit ComplexMatrix (const MDiagArray2<double>& a); + explicit OCTAVE_API ComplexMatrix (const MDiagArray2<double>& a); - explicit ComplexMatrix (const DiagArray2<double>& a); + explicit OCTAVE_API ComplexMatrix (const DiagArray2<double>& a); - explicit ComplexMatrix (const ComplexRowVector& rv); + explicit OCTAVE_API ComplexMatrix (const ComplexRowVector& rv); - explicit ComplexMatrix (const ComplexColumnVector& cv); + explicit OCTAVE_API ComplexMatrix (const ComplexColumnVector& cv); - explicit ComplexMatrix (const ComplexDiagMatrix& a); + explicit OCTAVE_API ComplexMatrix (const ComplexDiagMatrix& a); - explicit ComplexMatrix (const MDiagArray2<Complex>& a); + explicit OCTAVE_API ComplexMatrix (const MDiagArray2<Complex>& a); - explicit ComplexMatrix (const DiagArray2<Complex>& a); + explicit OCTAVE_API ComplexMatrix (const DiagArray2<Complex>& a); - explicit ComplexMatrix (const boolMatrix& a); + explicit OCTAVE_API ComplexMatrix (const boolMatrix& a); - explicit ComplexMatrix (const charMatrix& a); + explicit OCTAVE_API ComplexMatrix (const charMatrix& a); - bool operator == (const ComplexMatrix& a) const; - bool operator != (const ComplexMatrix& a) const; + OCTAVE_API bool operator == (const ComplexMatrix& a) const; + OCTAVE_API bool operator != (const ComplexMatrix& a) const; - bool ishermitian (void) const; + OCTAVE_API bool ishermitian (void) const; // destructive insert/delete/reorder operations - ComplexMatrix& insert (const Matrix& a, octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const RowVector& a, - octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const ColumnVector& a, - octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const DiagMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const Matrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const RowVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const ColumnVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const DiagMatrix& a, octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const ComplexMatrix& a, - octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const ComplexRowVector& a, - octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const ComplexColumnVector& a, - octave_idx_type r, octave_idx_type c); - ComplexMatrix& insert (const ComplexDiagMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const ComplexMatrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const ComplexRowVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const ComplexColumnVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexMatrix& + insert (const ComplexDiagMatrix& a, octave_idx_type r, octave_idx_type c); - ComplexMatrix& fill (double val); - ComplexMatrix& fill (const Complex& val); - ComplexMatrix& fill (double val, - octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2); - ComplexMatrix& fill (const Complex& val, - octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2); + OCTAVE_API ComplexMatrix& fill (double val); + OCTAVE_API ComplexMatrix& fill (const Complex& val); + OCTAVE_API ComplexMatrix& + fill (double val, octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2); + OCTAVE_API ComplexMatrix& + fill (const Complex& val, octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2); - ComplexMatrix append (const Matrix& a) const; - ComplexMatrix append (const RowVector& a) const; - ComplexMatrix append (const ColumnVector& a) const; - ComplexMatrix append (const DiagMatrix& a) const; + OCTAVE_API ComplexMatrix append (const Matrix& a) const; + OCTAVE_API ComplexMatrix append (const RowVector& a) const; + OCTAVE_API ComplexMatrix append (const ColumnVector& a) const; + OCTAVE_API ComplexMatrix append (const DiagMatrix& a) const; - ComplexMatrix append (const ComplexMatrix& a) const; - ComplexMatrix append (const ComplexRowVector& a) const; - ComplexMatrix append (const ComplexColumnVector& a) const; - ComplexMatrix append (const ComplexDiagMatrix& a) const; + OCTAVE_API ComplexMatrix append (const ComplexMatrix& a) const; + OCTAVE_API ComplexMatrix append (const ComplexRowVector& a) const; + OCTAVE_API ComplexMatrix append (const ComplexColumnVector& a) const; + OCTAVE_API ComplexMatrix append (const ComplexDiagMatrix& a) const; - ComplexMatrix stack (const Matrix& a) const; - ComplexMatrix stack (const RowVector& a) const; - ComplexMatrix stack (const ColumnVector& a) const; - ComplexMatrix stack (const DiagMatrix& a) const; + OCTAVE_API ComplexMatrix stack (const Matrix& a) const; + OCTAVE_API ComplexMatrix stack (const RowVector& a) const; + OCTAVE_API ComplexMatrix stack (const ColumnVector& a) const; + OCTAVE_API ComplexMatrix stack (const DiagMatrix& a) const; - ComplexMatrix stack (const ComplexMatrix& a) const; - ComplexMatrix stack (const ComplexRowVector& a) const; - ComplexMatrix stack (const ComplexColumnVector& a) const; - ComplexMatrix stack (const ComplexDiagMatrix& a) const; + OCTAVE_API ComplexMatrix stack (const ComplexMatrix& a) const; + OCTAVE_API ComplexMatrix stack (const ComplexRowVector& a) const; + OCTAVE_API ComplexMatrix stack (const ComplexColumnVector& a) const; + OCTAVE_API ComplexMatrix stack (const ComplexDiagMatrix& a) const; ComplexMatrix hermitian (void) const { return MArray<Complex>::hermitian (std::conj); } @@ -175,17 +176,19 @@ // resize is the destructive equivalent for this one - ComplexMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API ComplexMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; - ComplexMatrix extract_n (octave_idx_type r1, octave_idx_type c1, - octave_idx_type nr, octave_idx_type nc) const; + OCTAVE_API ComplexMatrix + extract_n (octave_idx_type r1, octave_idx_type c1, + octave_idx_type nr, octave_idx_type nc) const; // extract row or column i. - ComplexRowVector row (octave_idx_type i) const; + OCTAVE_API ComplexRowVector row (octave_idx_type i) const; - ComplexColumnVector column (octave_idx_type i) const; + OCTAVE_API ComplexColumnVector column (octave_idx_type i) const; void resize (octave_idx_type nr, octave_idx_type nc, const Complex& rfv = Complex (0)) @@ -201,34 +204,38 @@ double& rcon, bool force, bool calc_cond) const; public: - ComplexMatrix inverse (void) const; - ComplexMatrix inverse (octave_idx_type& info) const; - ComplexMatrix inverse (octave_idx_type& info, double& rcon, - bool force = false, bool calc_cond = true) const; + OCTAVE_API ComplexMatrix inverse (void) const; + OCTAVE_API ComplexMatrix inverse (octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + inverse (octave_idx_type& info, double& rcon, + bool force = false, bool calc_cond = true) const; - ComplexMatrix inverse (MatrixType& mattype) const; - ComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info) const; - ComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info, - double& rcon, bool force = false, - bool calc_cond = true) const; + OCTAVE_API ComplexMatrix inverse (MatrixType& mattype) const; + OCTAVE_API ComplexMatrix + inverse (MatrixType& mattype, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + inverse (MatrixType& mattype, octave_idx_type& info, double& rcon, + bool force = false, bool calc_cond = true) const; - ComplexMatrix pseudo_inverse (double tol = 0.0) const; + OCTAVE_API ComplexMatrix pseudo_inverse (double tol = 0.0) const; - ComplexMatrix fourier (void) const; - ComplexMatrix ifourier (void) const; + OCTAVE_API ComplexMatrix fourier (void) const; + OCTAVE_API ComplexMatrix ifourier (void) const; - ComplexMatrix fourier2d (void) const; - ComplexMatrix ifourier2d (void) const; + OCTAVE_API ComplexMatrix fourier2d (void) const; + OCTAVE_API ComplexMatrix ifourier2d (void) const; - ComplexDET determinant (void) const; - ComplexDET determinant (octave_idx_type& info) const; - ComplexDET determinant (octave_idx_type& info, double& rcon, - bool calc_cond = true) const; - ComplexDET determinant (MatrixType& mattype, octave_idx_type& info, - double& rcon, bool calc_cond = true) const; + OCTAVE_API ComplexDET determinant (void) const; + OCTAVE_API ComplexDET determinant (octave_idx_type& info) const; + OCTAVE_API ComplexDET + determinant (octave_idx_type& info, double& rcon, + bool calc_cond = true) const; + OCTAVE_API ComplexDET + determinant (MatrixType& mattype, octave_idx_type& info, double& rcon, + bool calc_cond = true) const; - double rcond (void) const; - double rcond (MatrixType& mattype) const; + OCTAVE_API double rcond (void) const; + OCTAVE_API double rcond (MatrixType& mattype) const; private: // Upper triangular matrix solvers @@ -253,170 +260,192 @@ public: // Generic interface to solver with no probing of type - ComplexMatrix solve (MatrixType& mattype, const Matrix& b) const; - ComplexMatrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info) const; - ComplexMatrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info, double& rcon) const; - ComplexMatrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexMatrix solve (MatrixType& mattype, const Matrix& b) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, + double& rcon) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, + double& rcon, solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; + + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, octave_idx_type& info, + double& rcon) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, octave_idx_type& info, + double& rcon, solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info, double& rcon) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b, octave_idx_type& info, + double& rcon, solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info, double& rcon) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; - - ComplexColumnVector solve (MatrixType& mattype, - const ComplexColumnVector& b) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info, double& rcon) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; // Generic interface to solver with probing of type - ComplexMatrix solve (const Matrix& b) const; - ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const; - ComplexMatrix solve (const Matrix& b, octave_idx_type& info, - double& rcon) const; - ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexMatrix solve (const Matrix& b) const; + OCTAVE_API ComplexMatrix + solve (const Matrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (const Matrix& b, octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexMatrix + solve (const Matrix& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexMatrix solve (const ComplexMatrix& b) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, - double& rcon) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, - double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexMatrix solve (const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexColumnVector solve (const ColumnVector& b) const; - ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info) const; - ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, - double& rcon) const; - ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, - double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexColumnVector solve (const ColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (const ColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (const ColumnVector& b, octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexColumnVector + solve (const ColumnVector& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexColumnVector solve (const ComplexColumnVector& b) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info, - double& rcon) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info, - double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexColumnVector solve (const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info, + double& rcon) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexMatrix lssolve (const Matrix& b) const; - ComplexMatrix lssolve (const Matrix& b, octave_idx_type& info) const; - ComplexMatrix lssolve (const Matrix& b, octave_idx_type& info, - octave_idx_type& rank) const; - ComplexMatrix lssolve (const Matrix& b, octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ComplexMatrix lssolve (const Matrix& b) const; + OCTAVE_API ComplexMatrix + lssolve (const Matrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + lssolve (const Matrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ComplexMatrix + lssolve (const Matrix& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; - ComplexMatrix lssolve (const ComplexMatrix& b) const; - ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info) const; - ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info, - octave_idx_type& rank) const; - ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ComplexMatrix lssolve (const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + lssolve (const ComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + lssolve (const ComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ComplexMatrix + lssolve (const ComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; - ComplexColumnVector lssolve (const ColumnVector& b) const; - ComplexColumnVector lssolve (const ColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector lssolve (const ColumnVector& b, octave_idx_type& info, - octave_idx_type& rank) const; - ComplexColumnVector lssolve (const ColumnVector& b, octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ComplexColumnVector lssolve (const ColumnVector& b) const; + OCTAVE_API ComplexColumnVector + lssolve (const ColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + lssolve (const ColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ComplexColumnVector + lssolve (const ColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ComplexColumnVector lssolve (const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + lssolve (const ComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + lssolve (const ComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ComplexColumnVector + lssolve (const ComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; // matrix by diagonal matrix -> matrix operations - ComplexMatrix& operator += (const DiagMatrix& a); - ComplexMatrix& operator -= (const DiagMatrix& a); + OCTAVE_API ComplexMatrix& operator += (const DiagMatrix& a); + OCTAVE_API ComplexMatrix& operator -= (const DiagMatrix& a); - ComplexMatrix& operator += (const ComplexDiagMatrix& a); - ComplexMatrix& operator -= (const ComplexDiagMatrix& a); + OCTAVE_API ComplexMatrix& operator += (const ComplexDiagMatrix& a); + OCTAVE_API ComplexMatrix& operator -= (const ComplexDiagMatrix& a); // matrix by matrix -> matrix operations - ComplexMatrix& operator += (const Matrix& a); - ComplexMatrix& operator -= (const Matrix& a); + OCTAVE_API ComplexMatrix& operator += (const Matrix& a); + OCTAVE_API ComplexMatrix& operator -= (const Matrix& a); // other operations - boolMatrix all (int dim = -1) const; - boolMatrix any (int dim = -1) const; + OCTAVE_API boolMatrix all (int dim = -1) const; + OCTAVE_API boolMatrix any (int dim = -1) const; - ComplexMatrix cumprod (int dim = -1) const; - ComplexMatrix cumsum (int dim = -1) const; - ComplexMatrix prod (int dim = -1) const; - ComplexMatrix sum (int dim = -1) const; - ComplexMatrix sumsq (int dim = -1) const; - Matrix abs (void) const; + OCTAVE_API ComplexMatrix cumprod (int dim = -1) const; + OCTAVE_API ComplexMatrix cumsum (int dim = -1) const; + OCTAVE_API ComplexMatrix prod (int dim = -1) const; + OCTAVE_API ComplexMatrix sum (int dim = -1) const; + OCTAVE_API ComplexMatrix sumsq (int dim = -1) const; + OCTAVE_API Matrix abs (void) const; - ComplexMatrix diag (octave_idx_type k = 0) const; + OCTAVE_API ComplexMatrix diag (octave_idx_type k = 0) const; - ComplexDiagMatrix diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API ComplexDiagMatrix + diag (octave_idx_type m, octave_idx_type n) const; - bool row_is_real_only (octave_idx_type) const; - bool column_is_real_only (octave_idx_type) const; + OCTAVE_API bool row_is_real_only (octave_idx_type) const; + OCTAVE_API bool column_is_real_only (octave_idx_type) const; - ComplexColumnVector row_min (void) const; - ComplexColumnVector row_max (void) const; + OCTAVE_API ComplexColumnVector row_min (void) const; + OCTAVE_API ComplexColumnVector row_max (void) const; - ComplexColumnVector row_min (Array<octave_idx_type>& index) const; - ComplexColumnVector row_max (Array<octave_idx_type>& index) const; + OCTAVE_API ComplexColumnVector row_min (Array<octave_idx_type>& index) const; + OCTAVE_API ComplexColumnVector row_max (Array<octave_idx_type>& index) const; - ComplexRowVector column_min (void) const; - ComplexRowVector column_max (void) const; + OCTAVE_API ComplexRowVector column_min (void) const; + OCTAVE_API ComplexRowVector column_max (void) const; - ComplexRowVector column_min (Array<octave_idx_type>& index) const; - ComplexRowVector column_max (Array<octave_idx_type>& index) const; + OCTAVE_API ComplexRowVector column_min (Array<octave_idx_type>& index) const; + OCTAVE_API ComplexRowVector column_max (Array<octave_idx_type>& index) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const ComplexMatrix& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - ComplexMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const ComplexMatrix& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, ComplexMatrix& a); }; extern OCTAVE_API ComplexMatrix conj (const ComplexMatrix& a);
--- a/liboctave/array/CNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/CNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -64,73 +64,80 @@ // unary operations - boolNDArray operator ! (void) const; + OCTAVE_API boolNDArray operator ! (void) const; // FIXME: this is not quite the right thing. - bool any_element_is_nan (void) const; - bool any_element_is_inf_or_nan (void) const; - bool all_elements_are_real (void) const; - bool all_integers (double& max_val, double& min_val) const; - bool too_large_for_float (void) const; + OCTAVE_API bool any_element_is_nan (void) const; + OCTAVE_API bool any_element_is_inf_or_nan (void) const; + OCTAVE_API bool all_elements_are_real (void) const; + OCTAVE_API bool all_integers (double& max_val, double& min_val) const; + OCTAVE_API bool too_large_for_float (void) const; - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; - ComplexNDArray cumprod (int dim = -1) const; - ComplexNDArray cumsum (int dim = -1) const; - ComplexNDArray prod (int dim = -1) const; - ComplexNDArray sum (int dim = -1) const; - ComplexNDArray xsum (int dim = -1) const; - ComplexNDArray sumsq (int dim = -1) const; - ComplexNDArray concat (const ComplexNDArray& rb, - const Array<octave_idx_type>& ra_idx); - ComplexNDArray concat (const NDArray& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API ComplexNDArray cumprod (int dim = -1) const; + OCTAVE_API ComplexNDArray cumsum (int dim = -1) const; + OCTAVE_API ComplexNDArray prod (int dim = -1) const; + OCTAVE_API ComplexNDArray sum (int dim = -1) const; + OCTAVE_API ComplexNDArray xsum (int dim = -1) const; + OCTAVE_API ComplexNDArray sumsq (int dim = -1) const; + OCTAVE_API ComplexNDArray + concat (const ComplexNDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API ComplexNDArray + concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx); - ComplexNDArray max (int dim = -1) const; - ComplexNDArray max (Array<octave_idx_type>& index, int dim = -1) const; - ComplexNDArray min (int dim = -1) const; - ComplexNDArray min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API ComplexNDArray max (int dim = -1) const; + OCTAVE_API ComplexNDArray + max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API ComplexNDArray min (int dim = -1) const; + OCTAVE_API ComplexNDArray + min (Array<octave_idx_type>& index, int dim = -1) const; - ComplexNDArray cummax (int dim = -1) const; - ComplexNDArray cummax (Array<octave_idx_type>& index, int dim = -1) const; - ComplexNDArray cummin (int dim = -1) const; - ComplexNDArray cummin (Array<octave_idx_type>& index, int dim = -1) const; - - ComplexNDArray diff (octave_idx_type order = 1, int dim = -1) const; + OCTAVE_API ComplexNDArray cummax (int dim = -1) const; + OCTAVE_API ComplexNDArray + cummax (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API ComplexNDArray cummin (int dim = -1) const; + OCTAVE_API ComplexNDArray + cummin (Array<octave_idx_type>& index, int dim = -1) const; - ComplexNDArray& insert (const NDArray& a, - octave_idx_type r, octave_idx_type c); - ComplexNDArray& insert (const ComplexNDArray& a, - octave_idx_type r, octave_idx_type c); - ComplexNDArray& insert (const ComplexNDArray& a, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API ComplexNDArray + diff (octave_idx_type order = 1, int dim = -1) const; - NDArray abs (void) const; - boolNDArray isnan (void) const; - boolNDArray isinf (void) const; - boolNDArray isfinite (void) const; + OCTAVE_API ComplexNDArray& + insert (const NDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexNDArray& + insert (const ComplexNDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API ComplexNDArray& + insert (const ComplexNDArray& a, const Array<octave_idx_type>& ra_idx); + + OCTAVE_API NDArray abs (void) const; + OCTAVE_API boolNDArray isnan (void) const; + OCTAVE_API boolNDArray isinf (void) const; + OCTAVE_API boolNDArray isfinite (void) const; friend OCTAVE_API ComplexNDArray conj (const ComplexNDArray& a); - ComplexNDArray fourier (int dim = 1) const; - ComplexNDArray ifourier (int dim = 1) const; + OCTAVE_API ComplexNDArray fourier (int dim = 1) const; + OCTAVE_API ComplexNDArray ifourier (int dim = 1) const; - ComplexNDArray fourier2d (void) const; - ComplexNDArray ifourier2d (void) const; + OCTAVE_API ComplexNDArray fourier2d (void) const; + OCTAVE_API ComplexNDArray ifourier2d (void) const; - ComplexNDArray fourierNd (void) const; - ComplexNDArray ifourierNd (void) const; + OCTAVE_API ComplexNDArray fourierNd (void) const; + OCTAVE_API ComplexNDArray ifourierNd (void) const; ComplexNDArray squeeze (void) const { return MArray<Complex>::squeeze (); } - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, + int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions); // i/o @@ -142,9 +149,9 @@ // bool all_elements_are_real (void) const; // bool all_integers (double& max_val, double& min_val) const; - ComplexNDArray diag (octave_idx_type k = 0) const; + OCTAVE_API ComplexNDArray diag (octave_idx_type k = 0) const; - ComplexNDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API ComplexNDArray diag (octave_idx_type m, octave_idx_type n) const; ComplexNDArray& changesign (void) {
--- a/liboctave/array/CRowVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/CRowVector.h Mon May 10 23:27:38 2021 +0200 @@ -66,57 +66,63 @@ return *this; } - bool operator == (const ComplexRowVector& a) const; - bool operator != (const ComplexRowVector& a) const; + OCTAVE_API bool operator == (const ComplexRowVector& a) const; + OCTAVE_API bool operator != (const ComplexRowVector& a) const; // destructive insert/delete/reorder operations - ComplexRowVector& insert (const RowVector& a, octave_idx_type c); - ComplexRowVector& insert (const ComplexRowVector& a, octave_idx_type c); + OCTAVE_API ComplexRowVector& + insert (const RowVector& a, octave_idx_type c); + OCTAVE_API ComplexRowVector& + insert (const ComplexRowVector& a, octave_idx_type c); - ComplexRowVector& fill (double val); - ComplexRowVector& fill (const Complex& val); - ComplexRowVector& fill (double val, octave_idx_type c1, octave_idx_type c2); - ComplexRowVector& fill (const Complex& val, - octave_idx_type c1, octave_idx_type c2); + OCTAVE_API ComplexRowVector& fill (double val); + OCTAVE_API ComplexRowVector& fill (const Complex& val); + OCTAVE_API ComplexRowVector& + fill (double val, octave_idx_type c1, octave_idx_type c2); + OCTAVE_API ComplexRowVector& + fill (const Complex& val, octave_idx_type c1, octave_idx_type c2); - ComplexRowVector append (const RowVector& a) const; - ComplexRowVector append (const ComplexRowVector& a) const; + OCTAVE_API ComplexRowVector append (const RowVector& a) const; + OCTAVE_API ComplexRowVector append (const ComplexRowVector& a) const; - ComplexColumnVector hermitian (void) const; - ComplexColumnVector transpose (void) const; + OCTAVE_API ComplexColumnVector hermitian (void) const; + OCTAVE_API ComplexColumnVector transpose (void) const; - friend ComplexRowVector conj (const ComplexRowVector& a); + friend OCTAVE_API ComplexRowVector conj (const ComplexRowVector& a); // resize is the destructive equivalent for this one - ComplexRowVector extract (octave_idx_type c1, octave_idx_type c2) const; + OCTAVE_API ComplexRowVector + extract (octave_idx_type c1, octave_idx_type c2) const; - ComplexRowVector extract_n (octave_idx_type c1, octave_idx_type n) const; + OCTAVE_API ComplexRowVector + extract_n (octave_idx_type c1, octave_idx_type n) const; // row vector by row vector -> row vector operations - ComplexRowVector& operator += (const RowVector& a); - ComplexRowVector& operator -= (const RowVector& a); + OCTAVE_API ComplexRowVector& operator += (const RowVector& a); + OCTAVE_API ComplexRowVector& operator -= (const RowVector& a); // row vector by matrix -> row vector - friend ComplexRowVector operator * (const ComplexRowVector& a, - const ComplexMatrix& b); + friend OCTAVE_API ComplexRowVector + operator * (const ComplexRowVector& a, const ComplexMatrix& b); - friend ComplexRowVector operator * (const RowVector& a, - const ComplexMatrix& b); + friend OCTAVE_API ComplexRowVector + operator * (const RowVector& a, const ComplexMatrix& b); // other operations - Complex min (void) const; - Complex max (void) const; + OCTAVE_API Complex min (void) const; + OCTAVE_API Complex max (void) const; // i/o - friend std::ostream& operator << (std::ostream& os, - const ComplexRowVector& a); - friend std::istream& operator >> (std::istream& is, ComplexRowVector& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const ComplexRowVector& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, ComplexRowVector& a); void resize (octave_idx_type n, const Complex& rfv = Complex (0)) { @@ -130,10 +136,10 @@ // row vector by column vector -> scalar -Complex OCTAVE_API operator * (const ComplexRowVector& a, +OCTAVE_API Complex operator * (const ComplexRowVector& a, const ColumnVector& b); -Complex OCTAVE_API operator * (const ComplexRowVector& a, +OCTAVE_API Complex operator * (const ComplexRowVector& a, const ComplexColumnVector& b); // other operations
--- a/liboctave/array/CSparse.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/CSparse.h Mon May 10 23:27:38 2021 +0200 @@ -94,11 +94,11 @@ octave_idx_type nzm = -1) : MSparse<Complex> (a, r, c, nr, nc, sum_terms, nzm) { } - explicit SparseComplexMatrix (const SparseMatrix& a); + explicit OCTAVE_API SparseComplexMatrix (const SparseMatrix& a); - explicit SparseComplexMatrix (const SparseBoolMatrix& a); + explicit OCTAVE_API SparseComplexMatrix (const SparseBoolMatrix& a); - explicit SparseComplexMatrix (const ComplexDiagMatrix& a); + explicit OCTAVE_API SparseComplexMatrix (const ComplexDiagMatrix& a); SparseComplexMatrix (octave_idx_type r, octave_idx_type c, octave_idx_type num_nz) @@ -110,43 +110,45 @@ return *this; } - bool operator == (const SparseComplexMatrix& a) const; - bool operator != (const SparseComplexMatrix& a) const; + OCTAVE_API bool operator == (const SparseComplexMatrix& a) const; + OCTAVE_API bool operator != (const SparseComplexMatrix& a) const; - bool ishermitian (void) const; + OCTAVE_API bool ishermitian (void) const; - SparseComplexMatrix max (int dim = -1) const; - SparseComplexMatrix max (Array<octave_idx_type>& index, int dim = -1) const; - SparseComplexMatrix min (int dim = -1) const; - SparseComplexMatrix min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API SparseComplexMatrix max (int dim = -1) const; + OCTAVE_API SparseComplexMatrix + max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API SparseComplexMatrix min (int dim = -1) const; + OCTAVE_API SparseComplexMatrix + min (Array<octave_idx_type>& index, int dim = -1) const; - SparseComplexMatrix& insert (const SparseComplexMatrix& a, - octave_idx_type r, octave_idx_type c); - SparseComplexMatrix& insert (const SparseMatrix& a, - octave_idx_type r, octave_idx_type c); - SparseComplexMatrix& insert (const SparseComplexMatrix& a, - const Array<octave_idx_type>& indx); - SparseComplexMatrix& insert (const SparseMatrix& a, - const Array<octave_idx_type>& indx); + OCTAVE_API SparseComplexMatrix& + insert (const SparseComplexMatrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API SparseComplexMatrix& + insert (const SparseMatrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API SparseComplexMatrix& + insert (const SparseComplexMatrix& a, const Array<octave_idx_type>& indx); + OCTAVE_API SparseComplexMatrix& + insert (const SparseMatrix& a, const Array<octave_idx_type>& indx); - SparseComplexMatrix concat (const SparseComplexMatrix& rb, - const Array<octave_idx_type>& ra_idx); - SparseComplexMatrix concat (const SparseMatrix& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API SparseComplexMatrix + concat (const SparseComplexMatrix& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API SparseComplexMatrix + concat (const SparseMatrix& rb, const Array<octave_idx_type>& ra_idx); - ComplexMatrix matrix_value (void) const; + OCTAVE_API ComplexMatrix matrix_value (void) const; - SparseComplexMatrix hermitian (void) const; // complex conjugate transpose + OCTAVE_API SparseComplexMatrix hermitian (void) const; // complex conjugate transpose SparseComplexMatrix transpose (void) const { return MSparse<Complex>::transpose (); } - friend SparseComplexMatrix conj (const SparseComplexMatrix& a); + friend OCTAVE_API SparseComplexMatrix conj (const SparseComplexMatrix& a); // extract row or column i. - ComplexRowVector row (octave_idx_type i) const; + OCTAVE_API ComplexRowVector row (octave_idx_type i) const; - ComplexColumnVector column (octave_idx_type i) const; + OCTAVE_API ComplexColumnVector column (octave_idx_type i) const; private: SparseComplexMatrix dinverse (MatrixType& mattype, octave_idx_type& info, @@ -158,18 +160,19 @@ const bool calccond = true) const; public: - SparseComplexMatrix inverse (void) const; - SparseComplexMatrix inverse (MatrixType& mattype) const; - SparseComplexMatrix inverse (MatrixType& mattype, - octave_idx_type& info) const; - SparseComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info, - double& rcond, bool force = false, - bool calc_cond = true) const; + OCTAVE_API SparseComplexMatrix inverse (void) const; + OCTAVE_API SparseComplexMatrix inverse (MatrixType& mattype) const; + OCTAVE_API SparseComplexMatrix + inverse (MatrixType& mattype, octave_idx_type& info) const; + OCTAVE_API SparseComplexMatrix + inverse (MatrixType& mattype, octave_idx_type& info, double& rcond, + bool force = false, bool calc_cond = true) const; - ComplexDET determinant (void) const; - ComplexDET determinant (octave_idx_type& info) const; - ComplexDET determinant (octave_idx_type& info, double& rcond, - bool calc_cond = true) const; + OCTAVE_API ComplexDET determinant (void) const; + OCTAVE_API ComplexDET determinant (octave_idx_type& info) const; + OCTAVE_API ComplexDET + determinant (octave_idx_type& info, double& rcond, + bool calc_cond = true) const; private: // Diagonal matrix solvers @@ -304,242 +307,266 @@ public: // Generic interface to solver with no probing of type - ComplexMatrix solve (MatrixType& mattype, const Matrix& b) const; - ComplexMatrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info) const; - ComplexMatrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info, double& rcond) const; - ComplexMatrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info, - double& rcond, solve_singularity_handler sing_handler, - bool singular_fallback = true) const; + OCTAVE_API ComplexMatrix solve (MatrixType& mattype, const Matrix& b) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, + double& rcond) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, + double& rcond, solve_singularity_handler sing_handler, + bool singular_fallback = true) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info, double& rcond) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler, - bool singular_fallback = true) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info, double& rcond) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler, + bool singular_fallback = true) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseMatrix& b) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseMatrix& b, - octave_idx_type& info) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseMatrix& b, - octave_idx_type& info, double& rcond) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseMatrix& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler, - bool singular_fallback = true) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseMatrix& b) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseMatrix& b, + octave_idx_type& info) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseMatrix& b, octave_idx_type& info, + double& rcond) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseMatrix& b, octave_idx_type& info, + double& rcond, solve_singularity_handler sing_handler, + bool singular_fallback = true) const; - SparseComplexMatrix solve (MatrixType& mattype, - const SparseComplexMatrix& b) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseComplexMatrix& b, - octave_idx_type& info) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseComplexMatrix& b, - octave_idx_type& info, double& rcond) const; - SparseComplexMatrix solve (MatrixType& mattype, const SparseComplexMatrix& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler, - bool singular_fallback = true) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseComplexMatrix& b) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseComplexMatrix& b, + octave_idx_type& info) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseComplexMatrix& b, + octave_idx_type& info, double& rcond) const; + OCTAVE_API SparseComplexMatrix + solve (MatrixType& mattype, const SparseComplexMatrix& b, + octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler, + bool singular_fallback = true) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info, double& rcond) const; - ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info, double& rcond) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - ComplexColumnVector solve (MatrixType& mattype, - const ComplexColumnVector& b) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info, double& rcond) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info, double& rcond) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; // Generic interface to solver with probing of type - ComplexMatrix solve (const Matrix& b) const; - ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const; - ComplexMatrix solve (const Matrix& b, octave_idx_type& info, - double& rcond) const; - ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API ComplexMatrix solve (const Matrix& b) const; + OCTAVE_API ComplexMatrix + solve (const Matrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (const Matrix& b, octave_idx_type& info, double& rcond) const; + OCTAVE_API ComplexMatrix + solve (const Matrix& b, octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - ComplexMatrix solve (const ComplexMatrix& b) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, - double& rcond) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, - double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API ComplexMatrix solve (const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info, double& rcond) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - SparseComplexMatrix solve (const SparseMatrix& b) const; - SparseComplexMatrix solve (const SparseMatrix& b, - octave_idx_type& info) const; - SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info, - double& rcond) const; - SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info, - double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API SparseComplexMatrix solve (const SparseMatrix& b) const; + OCTAVE_API SparseComplexMatrix + solve (const SparseMatrix& b, octave_idx_type& info) const; + OCTAVE_API SparseComplexMatrix + solve (const SparseMatrix& b, octave_idx_type& info, double& rcond) const; + OCTAVE_API SparseComplexMatrix + solve (const SparseMatrix& b, octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - SparseComplexMatrix solve (const SparseComplexMatrix& b) const; - SparseComplexMatrix solve (const SparseComplexMatrix& b, - octave_idx_type& info) const; - SparseComplexMatrix solve (const SparseComplexMatrix& b, - octave_idx_type& info, double& rcond) const; - SparseComplexMatrix solve (const SparseComplexMatrix& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API SparseComplexMatrix solve (const SparseComplexMatrix& b) const; + OCTAVE_API SparseComplexMatrix + solve (const SparseComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API SparseComplexMatrix + solve (const SparseComplexMatrix& b, octave_idx_type& info, + double& rcond) const; + OCTAVE_API SparseComplexMatrix + solve (const SparseComplexMatrix& b, octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - ComplexColumnVector solve (const ColumnVector& b) const; - ComplexColumnVector solve (const ColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, - double& rcond) const; - ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, - double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API ComplexColumnVector solve (const ColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (const ColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (const ColumnVector& b, octave_idx_type& info, double& rcond) const; + OCTAVE_API ComplexColumnVector + solve (const ColumnVector& b, octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - ComplexColumnVector solve (const ComplexColumnVector& b) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info, double& rcond) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info, double& rcond, - solve_singularity_handler sing_handler) const; + OCTAVE_API ComplexColumnVector solve (const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info, + double& rcond) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info, double& rcond, + solve_singularity_handler sing_handler) const; - SparseComplexMatrix squeeze (void) const; + OCTAVE_API SparseComplexMatrix squeeze (void) const; - SparseComplexMatrix reshape (const dim_vector& new_dims) const; + OCTAVE_API SparseComplexMatrix reshape (const dim_vector& new_dims) const; - SparseComplexMatrix permute (const Array<octave_idx_type>& vec, - bool inv = false) const; + OCTAVE_API SparseComplexMatrix + permute (const Array<octave_idx_type>& vec, bool inv = false) const; - SparseComplexMatrix ipermute (const Array<octave_idx_type>& vec) const; + OCTAVE_API SparseComplexMatrix + ipermute (const Array<octave_idx_type>& vec) const; - bool any_element_is_nan (void) const; - bool any_element_is_inf_or_nan (void) const; - bool all_elements_are_real (void) const; - bool all_integers (double& max_val, double& min_val) const; - bool too_large_for_float (void) const; + OCTAVE_API bool any_element_is_nan (void) const; + OCTAVE_API bool any_element_is_inf_or_nan (void) const; + OCTAVE_API bool all_elements_are_real (void) const; + OCTAVE_API bool all_integers (double& max_val, double& min_val) const; + OCTAVE_API bool too_large_for_float (void) const; - SparseBoolMatrix operator ! (void) const; + OCTAVE_API SparseBoolMatrix operator ! (void) const; - SparseBoolMatrix all (int dim = -1) const; - SparseBoolMatrix any (int dim = -1) const; + OCTAVE_API SparseBoolMatrix all (int dim = -1) const; + OCTAVE_API SparseBoolMatrix any (int dim = -1) const; - SparseComplexMatrix cumprod (int dim = -1) const; - SparseComplexMatrix cumsum (int dim = -1) const; - SparseComplexMatrix prod (int dim = -1) const; - SparseComplexMatrix sum (int dim = -1) const; - SparseComplexMatrix sumsq (int dim = -1) const; - SparseMatrix abs (void) const; + OCTAVE_API SparseComplexMatrix cumprod (int dim = -1) const; + OCTAVE_API SparseComplexMatrix cumsum (int dim = -1) const; + OCTAVE_API SparseComplexMatrix prod (int dim = -1) const; + OCTAVE_API SparseComplexMatrix sum (int dim = -1) const; + OCTAVE_API SparseComplexMatrix sumsq (int dim = -1) const; + OCTAVE_API SparseMatrix abs (void) const; - SparseComplexMatrix diag (octave_idx_type k = 0) const; + OCTAVE_API SparseComplexMatrix diag (octave_idx_type k = 0) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const SparseComplexMatrix& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - SparseComplexMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const SparseComplexMatrix& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, SparseComplexMatrix& a); }; -extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, - const SparseMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, - const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseComplexMatrix&, const SparseMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseComplexMatrix&, const SparseComplexMatrix&); -extern OCTAVE_API ComplexMatrix operator * (const Matrix&, - const SparseComplexMatrix&); -extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, - const SparseMatrix&); -extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API ComplexMatrix mul_trans (const ComplexMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API ComplexMatrix mul_herm (const ComplexMatrix&, - const SparseComplexMatrix&); +extern OCTAVE_API ComplexMatrix +operator * (const Matrix&, const SparseComplexMatrix&); +extern OCTAVE_API ComplexMatrix +operator * (const ComplexMatrix&, const SparseMatrix&); +extern OCTAVE_API ComplexMatrix +operator * (const ComplexMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API ComplexMatrix +mul_trans (const ComplexMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API ComplexMatrix +mul_herm (const ComplexMatrix&, const SparseComplexMatrix&); -extern OCTAVE_API ComplexMatrix operator * (const SparseMatrix&, - const ComplexMatrix&); -extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, - const Matrix&); -extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, - const ComplexMatrix&); -extern OCTAVE_API ComplexMatrix trans_mul (const SparseComplexMatrix&, - const ComplexMatrix&); -extern OCTAVE_API ComplexMatrix herm_mul (const SparseComplexMatrix&, - const ComplexMatrix&); +extern OCTAVE_API ComplexMatrix +operator * (const SparseMatrix&, const ComplexMatrix&); +extern OCTAVE_API ComplexMatrix +operator * (const SparseComplexMatrix&, const Matrix&); +extern OCTAVE_API ComplexMatrix +operator * (const SparseComplexMatrix&, const ComplexMatrix&); +extern OCTAVE_API ComplexMatrix +trans_mul (const SparseComplexMatrix&, const ComplexMatrix&); +extern OCTAVE_API ComplexMatrix +herm_mul (const SparseComplexMatrix&, const ComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const DiagMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, - const DiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const DiagMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseComplexMatrix&, const DiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, - const SparseMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&, - const ComplexDiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const ComplexDiagMatrix&, const SparseMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseMatrix&, const ComplexDiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, - const ComplexDiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const ComplexDiagMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseComplexMatrix&, const ComplexDiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator + (const ComplexDiagMatrix&, - const SparseMatrix&); -extern OCTAVE_API SparseComplexMatrix operator + (const DiagMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator + (const ComplexDiagMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator + (const SparseMatrix&, - const ComplexDiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator + (const SparseComplexMatrix&, - const DiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator + (const SparseComplexMatrix&, - const ComplexDiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator + (const ComplexDiagMatrix&, const SparseMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator + (const DiagMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator + (const ComplexDiagMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator + (const SparseMatrix&, const ComplexDiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator + (const SparseComplexMatrix&, const DiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator + (const SparseComplexMatrix&, const ComplexDiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator - (const ComplexDiagMatrix&, - const SparseMatrix&); -extern OCTAVE_API SparseComplexMatrix operator - (const DiagMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator - (const ComplexDiagMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator - (const SparseMatrix&, - const ComplexDiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, - const DiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, - const ComplexDiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator - (const ComplexDiagMatrix&, const SparseMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator - (const DiagMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator - (const ComplexDiagMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator - (const SparseMatrix&, const ComplexDiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator - (const SparseComplexMatrix&, const DiagMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator - (const SparseComplexMatrix&, const ComplexDiagMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const PermMatrix&, - const SparseComplexMatrix&); -extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, - const PermMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const PermMatrix&, const SparseComplexMatrix&); +extern OCTAVE_API SparseComplexMatrix +operator * (const SparseComplexMatrix&, const PermMatrix&); -extern OCTAVE_API SparseComplexMatrix min (const Complex& c, - const SparseComplexMatrix& m); -extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& m, - const Complex& c); -extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& a, - const SparseComplexMatrix& b); +extern OCTAVE_API SparseComplexMatrix +min (const Complex& c, const SparseComplexMatrix& m); +extern OCTAVE_API SparseComplexMatrix +min (const SparseComplexMatrix& m, const Complex& c); +extern OCTAVE_API SparseComplexMatrix +min (const SparseComplexMatrix& a, const SparseComplexMatrix& b); -extern OCTAVE_API SparseComplexMatrix max (const Complex& c, - const SparseComplexMatrix& m); -extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& m, - const Complex& c); -extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& a, - const SparseComplexMatrix& b); +extern OCTAVE_API SparseComplexMatrix +max (const Complex& c, const SparseComplexMatrix& m); +extern OCTAVE_API SparseComplexMatrix +max (const SparseComplexMatrix& m, const Complex& c); +extern OCTAVE_API SparseComplexMatrix +max (const SparseComplexMatrix& a, const SparseComplexMatrix& b); SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API) SPARSE_SMS_BOOL_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API)
--- a/liboctave/array/DiagArray2.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/DiagArray2.h Mon May 10 23:27:38 2021 +0200 @@ -104,7 +104,7 @@ int ndims (void) const { return 2; } - Array<T> extract_diag (octave_idx_type k = 0) const; + OCTAVE_API Array<T> extract_diag (octave_idx_type k = 0) const; DiagArray2<T> build_diag_matrix () const { @@ -119,7 +119,7 @@ return (r == c) ? Array<T>::elem (r) : T (0); } - T& elem (octave_idx_type r, octave_idx_type c); + OCTAVE_API T& elem (octave_idx_type r, octave_idx_type c); T dgelem (octave_idx_type i) const { return Array<T>::elem (i); } @@ -155,16 +155,16 @@ T dgxelem (octave_idx_type i) const { return Array<T>::xelem (i); } - void resize (octave_idx_type n, octave_idx_type m, const T& rfv); + OCTAVE_API void resize (octave_idx_type n, octave_idx_type m, const T& rfv); void resize (octave_idx_type n, octave_idx_type m) { resize (n, m, Array<T>::resize_fill_value ()); } - DiagArray2<T> transpose (void) const; - DiagArray2<T> hermitian (T (*fcn) (const T&) = nullptr) const; + OCTAVE_API DiagArray2<T> transpose (void) const; + OCTAVE_API DiagArray2<T> hermitian (T (*fcn) (const T&) = nullptr) const; - Array<T> array_value (void) const; + OCTAVE_API Array<T> array_value (void) const; const T * data (void) const { return Array<T>::data (); }
--- a/liboctave/array/MArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/MArray.h Mon May 10 23:27:38 2021 +0200 @@ -112,17 +112,22 @@ //! Performs indexed accumulative addition. //@{ - void idx_add (const octave::idx_vector& idx, T val); - void idx_add (const octave::idx_vector& idx, const MArray<T>& vals); + OCTAVE_API void idx_add (const octave::idx_vector& idx, T val); + OCTAVE_API void + idx_add (const octave::idx_vector& idx, const MArray<T>& vals); //@} - void idx_min (const octave::idx_vector& idx, const MArray<T>& vals); + OCTAVE_API void + idx_min (const octave::idx_vector& idx, const MArray<T>& vals); - void idx_max (const octave::idx_vector& idx, const MArray<T>& vals); + OCTAVE_API void + idx_max (const octave::idx_vector& idx, const MArray<T>& vals); - void idx_add_nd (const octave::idx_vector& idx, const MArray<T>& vals, int dim = -1); + OCTAVE_API void + idx_add_nd (const octave::idx_vector& idx, const MArray<T>& vals, + int dim = -1); - void changesign (void); + OCTAVE_API void changesign (void); }; // Define all the MArray forwarding functions for return type R and
--- a/liboctave/array/MDiagArray2.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/MDiagArray2.h Mon May 10 23:27:38 2021 +0200 @@ -107,22 +107,25 @@ MDiagArray2<T> hermitian (T (*fcn) (const T&) = nullptr) const { return DiagArray2<T>::hermitian (fcn); } - bool is_multiple_of_identity (T val) const; + OCTAVE_API bool is_multiple_of_identity (T val) const; // Currently, the OPS functions don't need to be friends, but that // may change. - friend MDiagArray2<T> operator + <> (const MDiagArray2<T>&); - friend MDiagArray2<T> operator - <> (const MDiagArray2<T>&); - friend MDiagArray2<T> operator * <> (const MDiagArray2<T>&, const T&); - friend MDiagArray2<T> operator / <> (const MDiagArray2<T>&, const T&); - friend MDiagArray2<T> operator * <> (const T&, const MDiagArray2<T>&); - friend MDiagArray2<T> operator + <> (const MDiagArray2<T>&, - const MDiagArray2<T>&); - friend MDiagArray2<T> operator - <> (const MDiagArray2<T>&, - const MDiagArray2<T>&); - friend MDiagArray2<T> product <> (const MDiagArray2<T>&, - const MDiagArray2<T>&); + friend OCTAVE_API MDiagArray2<T> operator + <> (const MDiagArray2<T>&); + friend OCTAVE_API MDiagArray2<T> operator - <> (const MDiagArray2<T>&); + friend OCTAVE_API MDiagArray2<T> + operator * <> (const MDiagArray2<T>&, const T&); + friend OCTAVE_API MDiagArray2<T> + operator / <> (const MDiagArray2<T>&, const T&); + friend OCTAVE_API MDiagArray2<T> + operator * <> (const T&, const MDiagArray2<T>&); + friend OCTAVE_API MDiagArray2<T> + operator + <> (const MDiagArray2<T>&, const MDiagArray2<T>&); + friend OCTAVE_API MDiagArray2<T> + operator - <> (const MDiagArray2<T>&, const MDiagArray2<T>&); + friend OCTAVE_API MDiagArray2<T> + product <> (const MDiagArray2<T>&, const MDiagArray2<T>&); };
--- a/liboctave/array/PermMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/PermMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -46,11 +46,13 @@ ~PermMatrix (void) = default; - PermMatrix (octave_idx_type n); + OCTAVE_API PermMatrix (octave_idx_type n); - PermMatrix (const Array<octave_idx_type>& p, bool colp, bool check = true); + OCTAVE_API PermMatrix (const Array<octave_idx_type>& p, bool colp, + bool check = true); - PermMatrix (const octave::idx_vector& idx, bool colp, octave_idx_type n = 0); + OCTAVE_API PermMatrix (const octave::idx_vector& idx, bool colp, + octave_idx_type n = 0); octave_idx_type dim1 (void) const { return Array<octave_idx_type>::numel (); } @@ -97,14 +99,14 @@ } // These are, in fact, super-fast. - PermMatrix transpose (void) const; - PermMatrix inverse (void) const; + OCTAVE_API PermMatrix transpose (void) const; + OCTAVE_API PermMatrix inverse (void) const; // Determinant, i.e., the sign of permutation. - octave_idx_type determinant (void) const; + OCTAVE_API octave_idx_type determinant (void) const; // Efficient integer power of a permutation. - PermMatrix power (octave_idx_type n) const; + OCTAVE_API PermMatrix power (octave_idx_type n) const; bool is_col_perm (void) const { return true; } bool is_row_perm (void) const { return false; } @@ -112,7 +114,7 @@ void print_info (std::ostream& os, const std::string& prefix) const { Array<octave_idx_type>::print_info (os, prefix); } - static PermMatrix eye (octave_idx_type n); + static OCTAVE_API PermMatrix eye (octave_idx_type n); private: @@ -124,8 +126,7 @@ }; // Multiplying permutations together. -PermMatrix -OCTAVE_API +OCTAVE_API PermMatrix operator * (const PermMatrix& a, const PermMatrix& b); #endif
--- a/liboctave/array/boolMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/boolMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -60,29 +60,30 @@ boolMatrix (const Array<bool>& a) : boolNDArray (a.as_matrix ()) { } - bool operator == (const boolMatrix& a) const; - bool operator != (const boolMatrix& a) const; + OCTAVE_API bool operator == (const boolMatrix& a) const; + OCTAVE_API bool operator != (const boolMatrix& a) const; boolMatrix transpose (void) const { return Array<bool>::transpose (); } // destructive insert/delete/reorder operations - boolMatrix& insert (const boolMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API boolMatrix& + insert (const boolMatrix& a, octave_idx_type r, octave_idx_type c); // unary operations - boolMatrix operator ! (void) const; + OCTAVE_API boolMatrix operator ! (void) const; // other operations - boolMatrix diag (octave_idx_type k = 0) const; + OCTAVE_API boolMatrix diag (octave_idx_type k = 0) const; #if 0 // i/o - friend std::ostream& operator << (std::ostream& os, const Matrix& a); - friend std::istream& operator >> (std::istream& is, Matrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const Matrix& a); + friend OCTAVE_API std::istream& operator >> (std::istream& is, Matrix& a); #endif void resize (octave_idx_type nr, octave_idx_type nc, bool rfv = false)
--- a/liboctave/array/boolNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/boolNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -60,33 +60,34 @@ // unary operations - boolNDArray operator ! (void) const; + OCTAVE_API boolNDArray operator ! (void) const; - boolNDArray& invert (void); + OCTAVE_API boolNDArray& invert (void); bool any_element_is_nan (void) const { return false; } // FIXME: this is not quite the right thing. - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; - boolNDArray concat (const boolNDArray& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API boolNDArray + concat (const boolNDArray& rb, const Array<octave_idx_type>& ra_idx); - boolNDArray& insert (const boolNDArray& a, octave_idx_type r, - octave_idx_type c); - boolNDArray& insert (const boolNDArray& a, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API boolNDArray& + insert (const boolNDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API boolNDArray& + insert (const boolNDArray& a, const Array<octave_idx_type>& ra_idx); boolNDArray squeeze (void) const { return Array<bool>::squeeze (); } - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions); // i/o @@ -96,9 +97,9 @@ // bool all_elements_are_real (void) const; // bool all_integers (double& max_val, double& min_val) const; - boolNDArray diag (octave_idx_type k = 0) const; + OCTAVE_API boolNDArray diag (octave_idx_type k = 0) const; - boolNDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API boolNDArray diag (octave_idx_type m, octave_idx_type n) const; }; NDND_BOOL_OP_DECLS (boolNDArray, boolNDArray, OCTAVE_API)
--- a/liboctave/array/boolSparse.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/boolSparse.h Mon May 10 23:27:38 2021 +0200 @@ -85,50 +85,53 @@ return *this; } - bool operator == (const SparseBoolMatrix& a) const; - bool operator != (const SparseBoolMatrix& a) const; + OCTAVE_API bool operator == (const SparseBoolMatrix& a) const; + OCTAVE_API bool operator != (const SparseBoolMatrix& a) const; SparseBoolMatrix transpose (void) const { return Sparse<bool>::transpose (); } // destructive insert/delete/reorder operations - SparseBoolMatrix& insert (const SparseBoolMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API SparseBoolMatrix& + insert (const SparseBoolMatrix& a, octave_idx_type r, octave_idx_type c); - SparseBoolMatrix& insert (const SparseBoolMatrix& a, - const Array<octave_idx_type>& indx); + OCTAVE_API SparseBoolMatrix& + insert (const SparseBoolMatrix& a, const Array<octave_idx_type>& indx); - SparseBoolMatrix concat (const SparseBoolMatrix& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API SparseBoolMatrix + concat (const SparseBoolMatrix& rb, const Array<octave_idx_type>& ra_idx); - SparseBoolMatrix diag (octave_idx_type k = 0) const; + OCTAVE_API SparseBoolMatrix diag (octave_idx_type k = 0) const; - boolMatrix matrix_value (void) const; + OCTAVE_API boolMatrix matrix_value (void) const; + + OCTAVE_API SparseBoolMatrix squeeze (void) const; - SparseBoolMatrix squeeze (void) const; + OCTAVE_API SparseBoolMatrix + index (const octave::idx_vector& i, bool resize_ok) const; - SparseBoolMatrix index (const octave::idx_vector& i, bool resize_ok) const; - - SparseBoolMatrix index (const octave::idx_vector& i, const octave::idx_vector& j, - bool resize_ok) const; + OCTAVE_API SparseBoolMatrix + index (const octave::idx_vector& i, const octave::idx_vector& j, + bool resize_ok) const; - SparseBoolMatrix reshape (const dim_vector& new_dims) const; + OCTAVE_API SparseBoolMatrix reshape (const dim_vector& new_dims) const; - SparseBoolMatrix permute (const Array<octave_idx_type>& vec, - bool inv = false) const; + OCTAVE_API SparseBoolMatrix + permute (const Array<octave_idx_type>& vec, bool inv = false) const; - SparseBoolMatrix ipermute (const Array<octave_idx_type>& vec) const; + OCTAVE_API SparseBoolMatrix + ipermute (const Array<octave_idx_type>& vec) const; // unary operations - SparseBoolMatrix operator ! (void) const; + OCTAVE_API SparseBoolMatrix operator ! (void) const; // other operations - SparseBoolMatrix all (int dim = -1) const; - SparseBoolMatrix any (int dim = -1) const; - SparseMatrix sum (int dim = -1) const; + OCTAVE_API SparseBoolMatrix all (int dim = -1) const; + OCTAVE_API SparseBoolMatrix any (int dim = -1) const; + OCTAVE_API SparseMatrix sum (int dim = -1) const; // i/o
--- a/liboctave/array/chMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/chMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -74,23 +74,26 @@ charMatrix (const string_vector& s, char fill_value = '\0') : charNDArray (s, fill_value) { } - bool operator == (const charMatrix& a) const; - bool operator != (const charMatrix& a) const; + OCTAVE_API bool operator == (const charMatrix& a) const; + OCTAVE_API bool operator != (const charMatrix& a) const; charMatrix transpose (void) const { return Array<char>::transpose (); } // destructive insert/delete/reorder operations - charMatrix& insert (const char *s, octave_idx_type r, octave_idx_type c); - charMatrix& insert (const charMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API charMatrix& + insert (const char *s, octave_idx_type r, octave_idx_type c); + OCTAVE_API charMatrix& + insert (const charMatrix& a, octave_idx_type r, octave_idx_type c); - std::string row_as_string (octave_idx_type, bool strip_ws = false) const; + OCTAVE_API std::string + row_as_string (octave_idx_type, bool strip_ws = false) const; // resize is the destructive equivalent for this one - charMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API charMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; void resize (octave_idx_type nr, octave_idx_type nc, char rfv = 0) { @@ -100,8 +103,9 @@ #if 0 // i/o - friend std::ostream& operator << (std::ostream& os, const Matrix& a); - friend std::istream& operator >> (std::istream& is, Matrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const Matrix& a); + friend OCTAVE_API std::istream& operator >> (std::istream& is, Matrix& a); #endif };
--- a/liboctave/array/chNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/chNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -52,13 +52,13 @@ charNDArray (const Array<char>& a) : Array<char> (a) { } - charNDArray (char c); + OCTAVE_API charNDArray (char c); - charNDArray (const char *s); + OCTAVE_API charNDArray (const char *s); - charNDArray (const std::string& s); + OCTAVE_API charNDArray (const std::string& s); - charNDArray (const string_vector& s, char fill_value = '\0'); + OCTAVE_API charNDArray (const string_vector& s, char fill_value = '\0'); charNDArray& operator = (const charNDArray& a) { @@ -70,39 +70,44 @@ // FIXME: this is not quite the right thing. - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; - charNDArray concat (const charNDArray& rb, - const Array<octave_idx_type>& ra_idx); - charNDArray concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; + OCTAVE_API charNDArray + concat (const charNDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API charNDArray + concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx); - charNDArray max (int dim = -1) const; - charNDArray max (Array<octave_idx_type>& index, int dim = -1) const; - charNDArray min (int dim = -1) const; - charNDArray min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API charNDArray max (int dim = -1) const; + OCTAVE_API charNDArray + max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API charNDArray min (int dim = -1) const; + OCTAVE_API charNDArray + min (Array<octave_idx_type>& index, int dim = -1) const; - charNDArray& insert (const charNDArray& a, - octave_idx_type r, octave_idx_type c); - charNDArray& insert (const charNDArray& a, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API charNDArray& + insert (const charNDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API charNDArray& + insert (const charNDArray& a, const Array<octave_idx_type>& ra_idx); charNDArray squeeze (void) const { return Array<char>::squeeze (); } - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, const dim_vector& dimensions); // i/o - // friend std::ostream& operator << (std::ostream& os, const charNDArray& a); - // friend std::istream& operator >> (std::istream& is, charNDArray& a); + // friend OCTAVE_API std::ostream& + // operator << (std::ostream& os, const charNDArray& a); + // friend OCTAVE_API std::istream& + // operator >> (std::istream& is, charNDArray& a); - charNDArray diag (octave_idx_type k = 0) const; + OCTAVE_API charNDArray diag (octave_idx_type k = 0) const; - charNDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API charNDArray diag (octave_idx_type m, octave_idx_type n) const; }; extern OCTAVE_API charNDArray min (char d, const charNDArray& m);
--- a/liboctave/array/dColVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/dColVector.h Mon May 10 23:27:38 2021 +0200 @@ -59,28 +59,31 @@ return *this; } - bool operator == (const ColumnVector& a) const; - bool operator != (const ColumnVector& a) const; + OCTAVE_API bool operator == (const ColumnVector& a) const; + OCTAVE_API bool operator != (const ColumnVector& a) const; // destructive insert/delete/reorder operations - ColumnVector& insert (const ColumnVector& a, octave_idx_type r); + OCTAVE_API ColumnVector& insert (const ColumnVector& a, octave_idx_type r); - ColumnVector& fill (double val); - ColumnVector& fill (double val, octave_idx_type r1, octave_idx_type r2); + OCTAVE_API ColumnVector& fill (double val); + OCTAVE_API ColumnVector& + fill (double val, octave_idx_type r1, octave_idx_type r2); - ColumnVector stack (const ColumnVector& a) const; + OCTAVE_API ColumnVector stack (const ColumnVector& a) const; - RowVector transpose (void) const; + OCTAVE_API RowVector transpose (void) const; friend OCTAVE_API ColumnVector real (const ComplexColumnVector& a); friend OCTAVE_API ColumnVector imag (const ComplexColumnVector& a); // resize is the destructive equivalent for this one - ColumnVector extract (octave_idx_type r1, octave_idx_type r2) const; + OCTAVE_API ColumnVector + extract (octave_idx_type r1, octave_idx_type r2) const; - ColumnVector extract_n (octave_idx_type r1, octave_idx_type n) const; + OCTAVE_API ColumnVector + extract_n (octave_idx_type r1, octave_idx_type n) const; // matrix by column vector -> column vector operations @@ -94,10 +97,10 @@ // other operations - double min (void) const; - double max (void) const; + OCTAVE_API double min (void) const; + OCTAVE_API double max (void) const; - ColumnVector abs (void) const; + OCTAVE_API ColumnVector abs (void) const; // i/o
--- a/liboctave/array/dDiagMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/dDiagMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -66,15 +66,16 @@ DiagMatrix (const Array<double>& a, octave_idx_type r, octave_idx_type c) : MDiagArray2<double> (a, r, c) { } - bool operator == (const DiagMatrix& a) const; - bool operator != (const DiagMatrix& a) const; + OCTAVE_API bool operator == (const DiagMatrix& a) const; + OCTAVE_API bool operator != (const DiagMatrix& a) const; - DiagMatrix& fill (double val); - DiagMatrix& fill (double val, octave_idx_type beg, octave_idx_type end); - DiagMatrix& fill (const ColumnVector& a); - DiagMatrix& fill (const RowVector& a); - DiagMatrix& fill (const ColumnVector& a, octave_idx_type beg); - DiagMatrix& fill (const RowVector& a, octave_idx_type beg); + OCTAVE_API DiagMatrix& fill (double val); + OCTAVE_API DiagMatrix& + fill (double val, octave_idx_type beg, octave_idx_type end); + OCTAVE_API DiagMatrix& fill (const ColumnVector& a); + OCTAVE_API DiagMatrix& fill (const RowVector& a); + OCTAVE_API DiagMatrix& fill (const ColumnVector& a, octave_idx_type beg); + OCTAVE_API DiagMatrix& fill (const RowVector& a, octave_idx_type beg); DiagMatrix transpose (void) const { return MDiagArray2<double>::transpose (); } @@ -85,33 +86,34 @@ // resize is the destructive analog for this one - Matrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API Matrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; // extract row or column i. - RowVector row (octave_idx_type i) const; - RowVector row (char *s) const; + OCTAVE_API RowVector row (octave_idx_type i) const; + OCTAVE_API RowVector row (char *s) const; - ColumnVector column (octave_idx_type i) const; - ColumnVector column (char *s) const; + OCTAVE_API ColumnVector column (octave_idx_type i) const; + OCTAVE_API ColumnVector column (char *s) const; - DiagMatrix inverse (void) const; - DiagMatrix inverse (octave_idx_type& info) const; - DiagMatrix pseudo_inverse (double tol = 0.0) const; + OCTAVE_API DiagMatrix inverse (void) const; + OCTAVE_API DiagMatrix inverse (octave_idx_type& info) const; + OCTAVE_API DiagMatrix pseudo_inverse (double tol = 0.0) const; // other operations ColumnVector extract_diag (octave_idx_type k = 0) const { return MDiagArray2<double>::extract_diag (k); } - DET determinant (void) const; - double rcond (void) const; + OCTAVE_API DET determinant (void) const; + OCTAVE_API double rcond (void) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const DiagMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const DiagMatrix& a); };
--- a/liboctave/array/dMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/dMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -84,47 +84,52 @@ template <typename U> Matrix (const Array<U>& a) : NDArray (a.as_matrix ()) { } - explicit Matrix (const RowVector& rv); + explicit OCTAVE_API Matrix (const RowVector& rv); - explicit Matrix (const ColumnVector& cv); + explicit OCTAVE_API Matrix (const ColumnVector& cv); - explicit Matrix (const DiagMatrix& a); + explicit OCTAVE_API Matrix (const DiagMatrix& a); - explicit Matrix (const MDiagArray2<double>& a); + explicit OCTAVE_API Matrix (const MDiagArray2<double>& a); - explicit Matrix (const DiagArray2<double>& a); + explicit OCTAVE_API Matrix (const DiagArray2<double>& a); - explicit Matrix (const PermMatrix& a); + explicit OCTAVE_API Matrix (const PermMatrix& a); - explicit Matrix (const boolMatrix& a); + explicit OCTAVE_API Matrix (const boolMatrix& a); explicit Matrix (const charMatrix& a); - bool operator == (const Matrix& a) const; - bool operator != (const Matrix& a) const; + OCTAVE_API bool operator == (const Matrix& a) const; + OCTAVE_API bool operator != (const Matrix& a) const; - bool issymmetric (void) const; + OCTAVE_API bool issymmetric (void) const; // destructive insert/delete/reorder operations - Matrix& insert (const Matrix& a, octave_idx_type r, octave_idx_type c); - Matrix& insert (const RowVector& a, octave_idx_type r, octave_idx_type c); - Matrix& insert (const ColumnVector& a, octave_idx_type r, octave_idx_type c); - Matrix& insert (const DiagMatrix& a, octave_idx_type r, octave_idx_type c); - - Matrix& fill (double val); - Matrix& fill (double val, octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2); + OCTAVE_API Matrix& + insert (const Matrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API Matrix& + insert (const RowVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API Matrix& + insert (const ColumnVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API Matrix& + insert (const DiagMatrix& a, octave_idx_type r, octave_idx_type c); - Matrix append (const Matrix& a) const; - Matrix append (const RowVector& a) const; - Matrix append (const ColumnVector& a) const; - Matrix append (const DiagMatrix& a) const; + OCTAVE_API Matrix& fill (double val); + OCTAVE_API Matrix& + fill (double val, octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2); - Matrix stack (const Matrix& a) const; - Matrix stack (const RowVector& a) const; - Matrix stack (const ColumnVector& a) const; - Matrix stack (const DiagMatrix& a) const; + OCTAVE_API Matrix append (const Matrix& a) const; + OCTAVE_API Matrix append (const RowVector& a) const; + OCTAVE_API Matrix append (const ColumnVector& a) const; + OCTAVE_API Matrix append (const DiagMatrix& a) const; + + OCTAVE_API Matrix stack (const Matrix& a) const; + OCTAVE_API Matrix stack (const RowVector& a) const; + OCTAVE_API Matrix stack (const ColumnVector& a) const; + OCTAVE_API Matrix stack (const DiagMatrix& a) const; friend OCTAVE_API Matrix real (const ComplexMatrix& a); friend OCTAVE_API Matrix imag (const ComplexMatrix& a); @@ -136,17 +141,19 @@ // resize is the destructive equivalent for this one - Matrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API Matrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; - Matrix extract_n (octave_idx_type r1, octave_idx_type c1, - octave_idx_type nr, octave_idx_type nc) const; + OCTAVE_API Matrix + extract_n (octave_idx_type r1, octave_idx_type c1, + octave_idx_type nr, octave_idx_type nc) const; // extract row or column i. - RowVector row (octave_idx_type i) const; + OCTAVE_API RowVector row (octave_idx_type i) const; - ColumnVector column (octave_idx_type i) const; + OCTAVE_API ColumnVector column (octave_idx_type i) const; void resize (octave_idx_type nr, octave_idx_type nc, double rfv = 0) { @@ -161,33 +168,37 @@ bool force, bool calc_cond) const; public: - Matrix inverse (void) const; - Matrix inverse (octave_idx_type& info) const; - Matrix inverse (octave_idx_type& info, double& rcon, bool force = false, - bool calc_cond = true) const; + OCTAVE_API Matrix inverse (void) const; + OCTAVE_API Matrix inverse (octave_idx_type& info) const; + OCTAVE_API Matrix + inverse (octave_idx_type& info, double& rcon, bool force = false, + bool calc_cond = true) const; - Matrix inverse (MatrixType& mattype) const; - Matrix inverse (MatrixType& mattype, octave_idx_type& info) const; - Matrix inverse (MatrixType& mattype, octave_idx_type& info, double& rcon, - bool force = false, bool calc_cond = true) const; + OCTAVE_API Matrix inverse (MatrixType& mattype) const; + OCTAVE_API Matrix inverse (MatrixType& mattype, octave_idx_type& info) const; + OCTAVE_API Matrix + inverse (MatrixType& mattype, octave_idx_type& info, double& rcon, + bool force = false, bool calc_cond = true) const; - Matrix pseudo_inverse (double tol = 0.0) const; + OCTAVE_API Matrix pseudo_inverse (double tol = 0.0) const; - ComplexMatrix fourier (void) const; - ComplexMatrix ifourier (void) const; + OCTAVE_API ComplexMatrix fourier (void) const; + OCTAVE_API ComplexMatrix ifourier (void) const; - ComplexMatrix fourier2d (void) const; - ComplexMatrix ifourier2d (void) const; + OCTAVE_API ComplexMatrix fourier2d (void) const; + OCTAVE_API ComplexMatrix ifourier2d (void) const; - DET determinant (void) const; - DET determinant (octave_idx_type& info) const; - DET determinant (octave_idx_type& info, double& rcon, - bool calc_cond = true) const; - DET determinant (MatrixType& mattype, octave_idx_type& info, - double& rcon, bool calc_cond = true) const; + OCTAVE_API DET determinant (void) const; + OCTAVE_API DET determinant (octave_idx_type& info) const; + OCTAVE_API DET + determinant (octave_idx_type& info, double& rcon, + bool calc_cond = true) const; + OCTAVE_API DET + determinant (MatrixType& mattype, octave_idx_type& info, + double& rcon, bool calc_cond = true) const; - double rcond (void) const; - double rcond (MatrixType& mattype) const; + OCTAVE_API double rcond (void) const; + OCTAVE_API double rcond (MatrixType& mattype) const; private: // Upper triangular matrix solvers @@ -209,154 +220,181 @@ public: // Generic interface to solver with no probing of type - Matrix solve (MatrixType& mattype, const Matrix& b) const; - Matrix solve (MatrixType& mattype, const Matrix& b, - octave_idx_type& info) const; - Matrix solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, - double& rcon) const; - Matrix solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, - double& rcon, solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API Matrix solve (MatrixType& mattype, const Matrix& b) const; + OCTAVE_API Matrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info) const; + OCTAVE_API Matrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, + double& rcon) const; + OCTAVE_API Matrix + solve (MatrixType& mattype, const Matrix& b, octave_idx_type& info, + double& rcon, solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info, double& rcon) const; - ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexMatrix + solve (MatrixType& mattype, const ComplexMatrix& b, + octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - ColumnVector solve (MatrixType& mattype, const ColumnVector& b) const; - ColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info) const; - ColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info, double& rcon) const; - ColumnVector solve (MatrixType& mattype, const ColumnVector& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ColumnVector + solve (MatrixType& mattype, const ColumnVector& b) const; + OCTAVE_API ColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API ColumnVector + solve (MatrixType& mattype, const ColumnVector& b, + octave_idx_type& info, double& rcon) const; + OCTAVE_API ColumnVector + solve (MatrixType& mattype, const ColumnVector& b, octave_idx_type& info, + double& rcon, solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexColumnVector solve (MatrixType& mattype, - const ComplexColumnVector& b) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info, double& rcon) const; - ComplexColumnVector solve (MatrixType& mattype, const ComplexColumnVector& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info, double& rcon) const; + OCTAVE_API ComplexColumnVector + solve (MatrixType& mattype, const ComplexColumnVector& b, + octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; // Generic interface to solver with probing of type - Matrix solve (const Matrix& b) const; - Matrix solve (const Matrix& b, octave_idx_type& info) const; - Matrix solve (const Matrix& b, octave_idx_type& info, double& rcon) const; - Matrix solve (const Matrix& b, octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API Matrix solve (const Matrix& b) const; + OCTAVE_API Matrix solve (const Matrix& b, octave_idx_type& info) const; + OCTAVE_API Matrix + solve (const Matrix& b, octave_idx_type& info, double& rcon) const; + OCTAVE_API Matrix + solve (const Matrix& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexMatrix solve (const ComplexMatrix& b) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, - double& rcon) const; - ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, - double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexMatrix solve (const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info, + double& rcon) const; + OCTAVE_API ComplexMatrix + solve (const ComplexMatrix& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ColumnVector solve (const ColumnVector& b) const; - ColumnVector solve (const ColumnVector& b, octave_idx_type& info) const; - ColumnVector solve (const ColumnVector& b, octave_idx_type& info, - double& rcon) const; - ColumnVector solve (const ColumnVector& b, octave_idx_type& info, - double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ColumnVector solve (const ColumnVector& b) const; + OCTAVE_API ColumnVector + solve (const ColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ColumnVector + solve (const ColumnVector& b, octave_idx_type& info, double& rcon) const; + OCTAVE_API ColumnVector + solve (const ColumnVector& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - ComplexColumnVector solve (const ComplexColumnVector& b) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info, double& rcon) const; - ComplexColumnVector solve (const ComplexColumnVector& b, - octave_idx_type& info, double& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API ComplexColumnVector solve (const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info, + double& rcon) const; + OCTAVE_API ComplexColumnVector + solve (const ComplexColumnVector& b, octave_idx_type& info, double& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; // Singular solvers - Matrix lssolve (const Matrix& b) const; - Matrix lssolve (const Matrix& b, octave_idx_type& info) const; - Matrix lssolve (const Matrix& b, octave_idx_type& info, - octave_idx_type& rank) const; - Matrix lssolve (const Matrix& b, octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API Matrix lssolve (const Matrix& b) const; + OCTAVE_API Matrix lssolve (const Matrix& b, octave_idx_type& info) const; + OCTAVE_API Matrix + lssolve (const Matrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API Matrix + lssolve (const Matrix& b, octave_idx_type& info, octave_idx_type& rank, + double& rcon) const; - ComplexMatrix lssolve (const ComplexMatrix& b) const; - ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info) const; - ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info, - octave_idx_type& rank) const; - ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ComplexMatrix lssolve (const ComplexMatrix& b) const; + OCTAVE_API ComplexMatrix + lssolve (const ComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API ComplexMatrix + lssolve (const ComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ComplexMatrix + lssolve (const ComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; - ColumnVector lssolve (const ColumnVector& b) const; - ColumnVector lssolve (const ColumnVector& b, octave_idx_type& info) const; - ColumnVector lssolve (const ColumnVector& b, octave_idx_type& info, - octave_idx_type& rank) const; - ColumnVector lssolve (const ColumnVector& b, octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ColumnVector lssolve (const ColumnVector& b) const; + OCTAVE_API ColumnVector + lssolve (const ColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ColumnVector + lssolve (const ColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ColumnVector + lssolve (const ColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b, - octave_idx_type& info) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank) const; - ComplexColumnVector lssolve (const ComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank, double& rcon) const; + OCTAVE_API ComplexColumnVector lssolve (const ComplexColumnVector& b) const; + OCTAVE_API ComplexColumnVector + lssolve (const ComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API ComplexColumnVector + lssolve (const ComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API ComplexColumnVector + lssolve (const ComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, double& rcon) const; - Matrix& operator += (const DiagMatrix& a); - Matrix& operator -= (const DiagMatrix& a); + OCTAVE_API Matrix& operator += (const DiagMatrix& a); + OCTAVE_API Matrix& operator -= (const DiagMatrix& a); // unary operations // other operations - boolMatrix all (int dim = -1) const; - boolMatrix any (int dim = -1) const; + OCTAVE_API boolMatrix all (int dim = -1) const; + OCTAVE_API boolMatrix any (int dim = -1) const; - Matrix cumprod (int dim = -1) const; - Matrix cumsum (int dim = -1) const; - Matrix prod (int dim = -1) const; - Matrix sum (int dim = -1) const; - Matrix sumsq (int dim = -1) const; - Matrix abs (void) const; + OCTAVE_API Matrix cumprod (int dim = -1) const; + OCTAVE_API Matrix cumsum (int dim = -1) const; + OCTAVE_API Matrix prod (int dim = -1) const; + OCTAVE_API Matrix sum (int dim = -1) const; + OCTAVE_API Matrix sumsq (int dim = -1) const; + OCTAVE_API Matrix abs (void) const; - Matrix diag (octave_idx_type k = 0) const; + OCTAVE_API Matrix diag (octave_idx_type k = 0) const; - DiagMatrix diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API DiagMatrix diag (octave_idx_type m, octave_idx_type n) const; - ColumnVector row_min (void) const; - ColumnVector row_max (void) const; + OCTAVE_API ColumnVector row_min (void) const; + OCTAVE_API ColumnVector row_max (void) const; - ColumnVector row_min (Array<octave_idx_type>& index) const; - ColumnVector row_max (Array<octave_idx_type>& index) const; + OCTAVE_API ColumnVector row_min (Array<octave_idx_type>& index) const; + OCTAVE_API ColumnVector row_max (Array<octave_idx_type>& index) const; - RowVector column_min (void) const; - RowVector column_max (void) const; + OCTAVE_API RowVector column_min (void) const; + OCTAVE_API RowVector column_max (void) const; - RowVector column_min (Array<octave_idx_type>& index) const; - RowVector column_max (Array<octave_idx_type>& index) const; + OCTAVE_API RowVector column_min (Array<octave_idx_type>& index) const; + OCTAVE_API RowVector column_max (Array<octave_idx_type>& index) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const Matrix& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, Matrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const Matrix& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, Matrix& a); }; // Publish externally used friend functions.
--- a/liboctave/array/dNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/dNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -77,64 +77,69 @@ // unary operations - boolNDArray operator ! (void) const; + OCTAVE_API boolNDArray operator ! (void) const; - bool any_element_is_negative (bool = false) const; - bool any_element_is_positive (bool = false) const; - bool any_element_is_nan (void) const; - bool any_element_is_inf_or_nan (void) const; - bool any_element_not_one_or_zero (void) const; - bool all_elements_are_zero (void) const; - bool all_elements_are_int_or_inf_or_nan (void) const; - bool all_integers (double& max_val, double& min_val) const; - bool all_integers (void) const; - bool too_large_for_float (void) const; + OCTAVE_API bool any_element_is_negative (bool = false) const; + OCTAVE_API bool any_element_is_positive (bool = false) const; + OCTAVE_API bool any_element_is_nan (void) const; + OCTAVE_API bool any_element_is_inf_or_nan (void) const; + OCTAVE_API bool any_element_not_one_or_zero (void) const; + OCTAVE_API bool all_elements_are_zero (void) const; + OCTAVE_API bool all_elements_are_int_or_inf_or_nan (void) const; + OCTAVE_API bool all_integers (double& max_val, double& min_val) const; + OCTAVE_API bool all_integers (void) const; + OCTAVE_API bool too_large_for_float (void) const; // FIXME: this is not quite the right thing. - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; - NDArray cumprod (int dim = -1) const; - NDArray cumsum (int dim = -1) const; - NDArray prod (int dim = -1) const; - NDArray sum (int dim = -1) const; - NDArray xsum (int dim = -1) const; - NDArray sumsq (int dim = -1) const; - NDArray concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx); - ComplexNDArray concat (const ComplexNDArray& rb, - const Array<octave_idx_type>& ra_idx); - charNDArray concat (const charNDArray& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API NDArray cumprod (int dim = -1) const; + OCTAVE_API NDArray cumsum (int dim = -1) const; + OCTAVE_API NDArray prod (int dim = -1) const; + OCTAVE_API NDArray sum (int dim = -1) const; + OCTAVE_API NDArray xsum (int dim = -1) const; + OCTAVE_API NDArray sumsq (int dim = -1) const; + OCTAVE_API NDArray + concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API ComplexNDArray + concat (const ComplexNDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API charNDArray + concat (const charNDArray& rb, const Array<octave_idx_type>& ra_idx); - NDArray max (int dim = -1) const; - NDArray max (Array<octave_idx_type>& index, int dim = -1) const; - NDArray min (int dim = -1) const; - NDArray min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API NDArray max (int dim = -1) const; + OCTAVE_API NDArray max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API NDArray min (int dim = -1) const; + OCTAVE_API NDArray min (Array<octave_idx_type>& index, int dim = -1) const; - NDArray cummax (int dim = -1) const; - NDArray cummax (Array<octave_idx_type>& index, int dim = -1) const; - NDArray cummin (int dim = -1) const; - NDArray cummin (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API NDArray cummax (int dim = -1) const; + OCTAVE_API NDArray + cummax (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API NDArray cummin (int dim = -1) const; + OCTAVE_API NDArray + cummin (Array<octave_idx_type>& index, int dim = -1) const; - NDArray diff (octave_idx_type order = 1, int dim = -1) const; + OCTAVE_API NDArray diff (octave_idx_type order = 1, int dim = -1) const; - NDArray& insert (const NDArray& a, octave_idx_type r, octave_idx_type c); - NDArray& insert (const NDArray& a, const Array<octave_idx_type>& ra_idx); + OCTAVE_API NDArray& + insert (const NDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API NDArray& + insert (const NDArray& a, const Array<octave_idx_type>& ra_idx); - NDArray abs (void) const; - boolNDArray isnan (void) const; - boolNDArray isinf (void) const; - boolNDArray isfinite (void) const; + OCTAVE_API NDArray abs (void) const; + OCTAVE_API boolNDArray isnan (void) const; + OCTAVE_API boolNDArray isinf (void) const; + OCTAVE_API boolNDArray isfinite (void) const; - ComplexNDArray fourier (int dim = 1) const; - ComplexNDArray ifourier (int dim = 1) const; + OCTAVE_API ComplexNDArray fourier (int dim = 1) const; + OCTAVE_API ComplexNDArray ifourier (int dim = 1) const; - ComplexNDArray fourier2d (void) const; - ComplexNDArray ifourier2d (void) const; + OCTAVE_API ComplexNDArray fourier2d (void) const; + OCTAVE_API ComplexNDArray ifourier2d (void) const; - ComplexNDArray fourierNd (void) const; - ComplexNDArray ifourierNd (void) const; + OCTAVE_API ComplexNDArray fourierNd (void) const; + OCTAVE_API ComplexNDArray ifourierNd (void) const; friend OCTAVE_API NDArray real (const ComplexNDArray& a); friend OCTAVE_API NDArray imag (const ComplexNDArray& a); @@ -143,22 +148,22 @@ NDArray squeeze (void) const { return MArray<double>::squeeze (); } - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, const dim_vector& dimensions); // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const NDArray& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const NDArray& a); friend OCTAVE_API std::istream& operator >> (std::istream& is, NDArray& a); - NDArray diag (octave_idx_type k = 0) const; + OCTAVE_API NDArray diag (octave_idx_type k = 0) const; - NDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API NDArray diag (octave_idx_type m, octave_idx_type n) const; NDArray& changesign (void) {
--- a/liboctave/array/dRowVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/dRowVector.h Mon May 10 23:27:38 2021 +0200 @@ -59,28 +59,28 @@ return *this; } - bool operator == (const RowVector& a) const; - bool operator != (const RowVector& a) const; + OCTAVE_API bool operator == (const RowVector& a) const; + OCTAVE_API bool operator != (const RowVector& a) const; // destructive insert/delete/reorder operations - RowVector& insert (const RowVector& a, octave_idx_type c); + OCTAVE_API RowVector& insert (const RowVector& a, octave_idx_type c); - RowVector& fill (double val); - RowVector& fill (double val, octave_idx_type c1, octave_idx_type c2); + OCTAVE_API RowVector& fill (double val); + OCTAVE_API RowVector& fill (double val, octave_idx_type c1, octave_idx_type c2); - RowVector append (const RowVector& a) const; + OCTAVE_API RowVector append (const RowVector& a) const; - ColumnVector transpose (void) const; + OCTAVE_API ColumnVector transpose (void) const; friend OCTAVE_API RowVector real (const ComplexRowVector& a); friend OCTAVE_API RowVector imag (const ComplexRowVector& a); // resize is the destructive equivalent for this one - RowVector extract (octave_idx_type c1, octave_idx_type c2) const; + OCTAVE_API RowVector extract (octave_idx_type c1, octave_idx_type c2) const; - RowVector extract_n (octave_idx_type c1, octave_idx_type n) const; + OCTAVE_API RowVector extract_n (octave_idx_type c1, octave_idx_type n) const; // row vector by matrix -> row vector @@ -88,8 +88,8 @@ // other operations - double min (void) const; - double max (void) const; + OCTAVE_API double min (void) const; + OCTAVE_API double max (void) const; // i/o @@ -109,9 +109,9 @@ // row vector by column vector -> scalar -double OCTAVE_API operator * (const RowVector& a, const ColumnVector& b); +OCTAVE_API double operator * (const RowVector& a, const ColumnVector& b); -Complex OCTAVE_API operator * (const RowVector& a, +OCTAVE_API Complex operator * (const RowVector& a, const ComplexColumnVector& b); // other operations
--- a/liboctave/array/dim-vector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/dim-vector.h Mon May 10 23:27:38 2021 +0200 @@ -251,7 +251,7 @@ } } - void chop_all_singletons (void); + OCTAVE_API void chop_all_singletons (void); // WARNING: Only call by jit octave_idx_type * to_jit (void) const @@ -265,7 +265,7 @@ public: - static octave_idx_type dim_max (void); + static OCTAVE_API octave_idx_type dim_max (void); explicit dim_vector (void) : rep (nil_rep ()) { increment_count (); } @@ -361,7 +361,7 @@ } } - std::string str (char sep = 'x') const; + OCTAVE_API std::string str (char sep = 'x') const; bool all_zero (void) const { @@ -385,7 +385,7 @@ [] (octave_idx_type dim) { return dim == 0; }); } - int num_ones (void) const; + OCTAVE_API int num_ones (void) const; bool all_ones (void) const { @@ -418,7 +418,7 @@ //! function that is iterating over an array using octave_idx_type //! indices. - octave_idx_type safe_numel (void) const; + OCTAVE_API octave_idx_type safe_numel (void) const; bool any_neg (void) const { @@ -426,21 +426,21 @@ [] (octave_idx_type dim) { return dim < 0; }); } - dim_vector squeeze (void) const; + OCTAVE_API dim_vector squeeze (void) const; //! This corresponds to cat(). - bool concat (const dim_vector& dvb, int dim); + OCTAVE_API bool concat (const dim_vector& dvb, int dim); //! This corresponds to [,] (horzcat, dim = 0) and [;] (vertcat, dim = 1). // The rules are more relaxed here. - bool hvcat (const dim_vector& dvb, int dim); + OCTAVE_API bool hvcat (const dim_vector& dvb, int dim); //! Force certain dimensionality, preserving numel (). Missing //! dimensions are set to 1, redundant are folded into the trailing //! one. If n = 1, the result is 2d and the second dim is 1 //! (dim_vectors are always at least 2D). - dim_vector redim (int n) const; + OCTAVE_API dim_vector redim (int n) const; dim_vector as_column (void) const { @@ -576,9 +576,10 @@ return k; } - friend bool operator == (const dim_vector& a, const dim_vector& b); + friend OCTAVE_API bool + operator == (const dim_vector& a, const dim_vector& b); - Array<octave_idx_type> as_array (void) const; + OCTAVE_API Array<octave_idx_type> as_array (void) const; }; inline bool
--- a/liboctave/array/fCColVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fCColVector.h Mon May 10 23:27:38 2021 +0200 @@ -61,7 +61,7 @@ FloatComplexColumnVector (const Array<FloatComplex>& a) : MArray<FloatComplex> (a.as_column ()) { } - explicit FloatComplexColumnVector (const FloatColumnVector& a); + explicit OCTAVE_API FloatComplexColumnVector (const FloatColumnVector& a); FloatComplexColumnVector& operator = (const FloatComplexColumnVector& a) { @@ -69,44 +69,47 @@ return *this; } - bool operator == (const FloatComplexColumnVector& a) const; - bool operator != (const FloatComplexColumnVector& a) const; + OCTAVE_API bool operator == (const FloatComplexColumnVector& a) const; + OCTAVE_API bool operator != (const FloatComplexColumnVector& a) const; // destructive insert/delete/reorder operations - FloatComplexColumnVector& insert (const FloatColumnVector& a, - octave_idx_type r); - FloatComplexColumnVector& insert (const FloatComplexColumnVector& a, - octave_idx_type r); + OCTAVE_API FloatComplexColumnVector& + insert (const FloatColumnVector& a, octave_idx_type r); + OCTAVE_API FloatComplexColumnVector& + insert (const FloatComplexColumnVector& a, octave_idx_type r); - FloatComplexColumnVector& fill (float val); - FloatComplexColumnVector& fill (const FloatComplex& val); - FloatComplexColumnVector& fill (float val, - octave_idx_type r1, octave_idx_type r2); - FloatComplexColumnVector& fill (const FloatComplex& val, - octave_idx_type r1, octave_idx_type r2); + OCTAVE_API FloatComplexColumnVector& fill (float val); + OCTAVE_API FloatComplexColumnVector& fill (const FloatComplex& val); + OCTAVE_API FloatComplexColumnVector& + fill (float val, octave_idx_type r1, octave_idx_type r2); + OCTAVE_API FloatComplexColumnVector& + fill (const FloatComplex& val, octave_idx_type r1, octave_idx_type r2); - FloatComplexColumnVector stack (const FloatColumnVector& a) const; - FloatComplexColumnVector stack (const FloatComplexColumnVector& a) const; + OCTAVE_API FloatComplexColumnVector stack (const FloatColumnVector& a) const; + OCTAVE_API FloatComplexColumnVector + stack (const FloatComplexColumnVector& a) const; - FloatComplexRowVector hermitian (void) const; - FloatComplexRowVector transpose (void) const; + OCTAVE_API FloatComplexRowVector hermitian (void) const; + OCTAVE_API FloatComplexRowVector transpose (void) const; friend OCTAVE_API FloatComplexColumnVector - conj (const FloatComplexColumnVector& a); + OCTAVE_API conj (const FloatComplexColumnVector& a); // resize is the destructive equivalent for this one - FloatComplexColumnVector extract (octave_idx_type r1, - octave_idx_type r2) const; + OCTAVE_API FloatComplexColumnVector + extract (octave_idx_type r1, octave_idx_type r2) const; - FloatComplexColumnVector extract_n (octave_idx_type r1, - octave_idx_type n) const; + OCTAVE_API FloatComplexColumnVector + extract_n (octave_idx_type r1, octave_idx_type n) const; // column vector by column vector -> column vector operations - FloatComplexColumnVector& operator += (const FloatColumnVector& a); - FloatComplexColumnVector& operator -= (const FloatColumnVector& a); + OCTAVE_API FloatComplexColumnVector& + operator += (const FloatColumnVector& a); + OCTAVE_API FloatComplexColumnVector& + operator -= (const FloatColumnVector& a); // matrix by column vector -> column vector operations @@ -134,17 +137,17 @@ // other operations - FloatComplex min (void) const; - FloatComplex max (void) const; + OCTAVE_API FloatComplex min (void) const; + OCTAVE_API FloatComplex max (void) const; - FloatColumnVector abs (void) const; + OCTAVE_API FloatColumnVector abs (void) const; // i/o friend OCTAVE_API std::ostream& operator << (std::ostream& os, const FloatComplexColumnVector& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - FloatComplexColumnVector& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatComplexColumnVector& a); void resize (octave_idx_type n, const FloatComplex& rfv = FloatComplex (0)) {
--- a/liboctave/array/fCDiagMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fCDiagMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -74,7 +74,7 @@ explicit FloatComplexDiagMatrix (const Array<float>& a) : MDiagArray2<FloatComplex> (Array<FloatComplex> (a)) { } - explicit FloatComplexDiagMatrix (const FloatDiagMatrix& a); + explicit OCTAVE_API FloatComplexDiagMatrix (const FloatDiagMatrix& a); FloatComplexDiagMatrix (const MDiagArray2<FloatComplex>& a) : MDiagArray2<FloatComplex> (a) { } @@ -83,72 +83,74 @@ FloatComplexDiagMatrix (const DiagArray2<U>& a) : MDiagArray2<FloatComplex> (a) { } - bool operator == (const FloatComplexDiagMatrix& a) const; - bool operator != (const FloatComplexDiagMatrix& a) const; + OCTAVE_API bool operator == (const FloatComplexDiagMatrix& a) const; + OCTAVE_API bool operator != (const FloatComplexDiagMatrix& a) const; - FloatComplexDiagMatrix& fill (float val); - FloatComplexDiagMatrix& fill (const FloatComplex& val); - FloatComplexDiagMatrix& fill (float val, - octave_idx_type beg, octave_idx_type end); - FloatComplexDiagMatrix& fill (const FloatComplex& val, - octave_idx_type beg, octave_idx_type end); - FloatComplexDiagMatrix& fill (const FloatColumnVector& a); - FloatComplexDiagMatrix& fill (const FloatComplexColumnVector& a); - FloatComplexDiagMatrix& fill (const FloatRowVector& a); - FloatComplexDiagMatrix& fill (const FloatComplexRowVector& a); - FloatComplexDiagMatrix& fill (const FloatColumnVector& a, - octave_idx_type beg); - FloatComplexDiagMatrix& fill (const FloatComplexColumnVector& a, - octave_idx_type beg); - FloatComplexDiagMatrix& fill (const FloatRowVector& a, octave_idx_type beg); - FloatComplexDiagMatrix& fill (const FloatComplexRowVector& a, - octave_idx_type beg); + OCTAVE_API FloatComplexDiagMatrix& fill (float val); + OCTAVE_API FloatComplexDiagMatrix& fill (const FloatComplex& val); + OCTAVE_API FloatComplexDiagMatrix& + fill (float val, octave_idx_type beg, octave_idx_type end); + OCTAVE_API FloatComplexDiagMatrix& + fill (const FloatComplex& val, octave_idx_type beg, octave_idx_type end); + OCTAVE_API FloatComplexDiagMatrix& fill (const FloatColumnVector& a); + OCTAVE_API FloatComplexDiagMatrix& fill (const FloatComplexColumnVector& a); + OCTAVE_API FloatComplexDiagMatrix& fill (const FloatRowVector& a); + OCTAVE_API FloatComplexDiagMatrix& fill (const FloatComplexRowVector& a); + OCTAVE_API FloatComplexDiagMatrix& + fill (const FloatColumnVector& a, octave_idx_type beg); + OCTAVE_API FloatComplexDiagMatrix& + fill (const FloatComplexColumnVector& a, octave_idx_type beg); + OCTAVE_API FloatComplexDiagMatrix& + fill (const FloatRowVector& a, octave_idx_type beg); + OCTAVE_API FloatComplexDiagMatrix& + fill (const FloatComplexRowVector& a, octave_idx_type beg); FloatComplexDiagMatrix hermitian (void) const { return MDiagArray2<FloatComplex>::hermitian (std::conj); } FloatComplexDiagMatrix transpose (void) const { return MDiagArray2<FloatComplex>::transpose (); } - FloatDiagMatrix abs (void) const; + OCTAVE_API FloatDiagMatrix abs (void) const; friend OCTAVE_API FloatComplexDiagMatrix conj (const FloatComplexDiagMatrix& a); // resize is the destructive analog for this one - FloatComplexMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API FloatComplexMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; // extract row or column i - FloatComplexRowVector row (octave_idx_type i) const; - FloatComplexRowVector row (char *s) const; + OCTAVE_API FloatComplexRowVector row (octave_idx_type i) const; + OCTAVE_API FloatComplexRowVector row (char *s) const; - FloatComplexColumnVector column (octave_idx_type i) const; - FloatComplexColumnVector column (char *s) const; + OCTAVE_API FloatComplexColumnVector column (octave_idx_type i) const; + OCTAVE_API FloatComplexColumnVector column (char *s) const; - FloatComplexDiagMatrix inverse (octave_idx_type& info) const; - FloatComplexDiagMatrix inverse (void) const; - FloatComplexDiagMatrix pseudo_inverse (float tol = 0.0f) const; + OCTAVE_API FloatComplexDiagMatrix inverse (octave_idx_type& info) const; + OCTAVE_API FloatComplexDiagMatrix inverse (void) const; + OCTAVE_API FloatComplexDiagMatrix pseudo_inverse (float tol = 0.0f) const; - bool all_elements_are_real (void) const; + OCTAVE_API bool all_elements_are_real (void) const; // diagonal matrix by diagonal matrix -> diagonal matrix operations - FloatComplexDiagMatrix& operator += (const FloatDiagMatrix& a); - FloatComplexDiagMatrix& operator -= (const FloatDiagMatrix& a); + OCTAVE_API FloatComplexDiagMatrix& operator += (const FloatDiagMatrix& a); + OCTAVE_API FloatComplexDiagMatrix& operator -= (const FloatDiagMatrix& a); // other operations FloatComplexColumnVector extract_diag (octave_idx_type k = 0) const { return MDiagArray2<FloatComplex>::extract_diag (k); } - FloatComplexDET determinant (void) const; - float rcond (void) const; + OCTAVE_API FloatComplexDET determinant (void) const; + OCTAVE_API float rcond (void) const; // i/o - friend std::ostream& operator << (std::ostream& os, - const FloatComplexDiagMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatComplexDiagMatrix& a); };
--- a/liboctave/array/fCMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fCMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -89,86 +89,91 @@ FloatComplexMatrix (const Array<U>& a) : FloatComplexNDArray (a.as_matrix ()) { } - explicit FloatComplexMatrix (const FloatMatrix& a); + explicit OCTAVE_API FloatComplexMatrix (const FloatMatrix& a); - explicit FloatComplexMatrix (const FloatRowVector& rv); + explicit OCTAVE_API FloatComplexMatrix (const FloatRowVector& rv); - explicit FloatComplexMatrix (const FloatColumnVector& cv); + explicit OCTAVE_API FloatComplexMatrix (const FloatColumnVector& cv); - explicit FloatComplexMatrix (const FloatDiagMatrix& a); + explicit OCTAVE_API FloatComplexMatrix (const FloatDiagMatrix& a); - explicit FloatComplexMatrix (const MDiagArray2<float>& a); + explicit OCTAVE_API FloatComplexMatrix (const MDiagArray2<float>& a); - explicit FloatComplexMatrix (const DiagArray2<float>& a); + explicit OCTAVE_API FloatComplexMatrix (const DiagArray2<float>& a); - explicit FloatComplexMatrix (const FloatComplexRowVector& rv); + explicit OCTAVE_API FloatComplexMatrix (const FloatComplexRowVector& rv); - explicit FloatComplexMatrix (const FloatComplexColumnVector& cv); + explicit OCTAVE_API FloatComplexMatrix (const FloatComplexColumnVector& cv); - explicit FloatComplexMatrix (const FloatComplexDiagMatrix& a); + explicit OCTAVE_API FloatComplexMatrix (const FloatComplexDiagMatrix& a); - explicit FloatComplexMatrix (const MDiagArray2<FloatComplex>& a); + explicit OCTAVE_API FloatComplexMatrix (const MDiagArray2<FloatComplex>& a); - explicit FloatComplexMatrix (const DiagArray2<FloatComplex>& a); + explicit OCTAVE_API FloatComplexMatrix (const DiagArray2<FloatComplex>& a); - explicit FloatComplexMatrix (const boolMatrix& a); + explicit OCTAVE_API FloatComplexMatrix (const boolMatrix& a); - explicit FloatComplexMatrix (const charMatrix& a); + explicit OCTAVE_API FloatComplexMatrix (const charMatrix& a); - FloatComplexMatrix (const FloatMatrix& re, const FloatMatrix& im); + OCTAVE_API FloatComplexMatrix (const FloatMatrix& re, const FloatMatrix& im); - bool operator == (const FloatComplexMatrix& a) const; - bool operator != (const FloatComplexMatrix& a) const; + OCTAVE_API bool operator == (const FloatComplexMatrix& a) const; + OCTAVE_API bool operator != (const FloatComplexMatrix& a) const; - bool ishermitian (void) const; + OCTAVE_API bool ishermitian (void) const; // destructive insert/delete/reorder operations - FloatComplexMatrix& insert (const FloatMatrix& a, - octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatRowVector& a, - octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatColumnVector& a, - octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatDiagMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatMatrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatRowVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatColumnVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatDiagMatrix& a, octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatComplexMatrix& a, - octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatComplexRowVector& a, - octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatComplexColumnVector& a, - octave_idx_type r, octave_idx_type c); - FloatComplexMatrix& insert (const FloatComplexDiagMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatComplexMatrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatComplexRowVector& a, octave_idx_type r, + octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatComplexColumnVector& a, octave_idx_type r, + octave_idx_type c); + OCTAVE_API FloatComplexMatrix& + insert (const FloatComplexDiagMatrix& a, octave_idx_type r, + octave_idx_type c); - FloatComplexMatrix& fill (float val); - FloatComplexMatrix& fill (const FloatComplex& val); - FloatComplexMatrix& fill (float val, octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2); - FloatComplexMatrix& fill (const FloatComplex& val, - octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2); + OCTAVE_API FloatComplexMatrix& fill (float val); + OCTAVE_API FloatComplexMatrix& fill (const FloatComplex& val); + OCTAVE_API FloatComplexMatrix& + fill (float val, octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2); + OCTAVE_API FloatComplexMatrix& + fill (const FloatComplex& val, octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2); - FloatComplexMatrix append (const FloatMatrix& a) const; - FloatComplexMatrix append (const FloatRowVector& a) const; - FloatComplexMatrix append (const FloatColumnVector& a) const; - FloatComplexMatrix append (const FloatDiagMatrix& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatMatrix& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatRowVector& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatColumnVector& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatDiagMatrix& a) const; - FloatComplexMatrix append (const FloatComplexMatrix& a) const; - FloatComplexMatrix append (const FloatComplexRowVector& a) const; - FloatComplexMatrix append (const FloatComplexColumnVector& a) const; - FloatComplexMatrix append (const FloatComplexDiagMatrix& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatComplexMatrix& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatComplexRowVector& a) const; + OCTAVE_API FloatComplexMatrix + append (const FloatComplexColumnVector& a) const; + OCTAVE_API FloatComplexMatrix append (const FloatComplexDiagMatrix& a) const; - FloatComplexMatrix stack (const FloatMatrix& a) const; - FloatComplexMatrix stack (const FloatRowVector& a) const; - FloatComplexMatrix stack (const FloatColumnVector& a) const; - FloatComplexMatrix stack (const FloatDiagMatrix& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatMatrix& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatRowVector& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatColumnVector& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatDiagMatrix& a) const; - FloatComplexMatrix stack (const FloatComplexMatrix& a) const; - FloatComplexMatrix stack (const FloatComplexRowVector& a) const; - FloatComplexMatrix stack (const FloatComplexColumnVector& a) const; - FloatComplexMatrix stack (const FloatComplexDiagMatrix& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatComplexMatrix& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatComplexRowVector& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatComplexColumnVector& a) const; + OCTAVE_API FloatComplexMatrix stack (const FloatComplexDiagMatrix& a) const; FloatComplexMatrix hermitian (void) const { return MArray<FloatComplex>::hermitian (std::conj); } @@ -179,17 +184,19 @@ // resize is the destructive equivalent for this one - FloatComplexMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API FloatComplexMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; - FloatComplexMatrix extract_n (octave_idx_type r1, octave_idx_type c1, - octave_idx_type nr, octave_idx_type nc) const; + OCTAVE_API FloatComplexMatrix + extract_n (octave_idx_type r1, octave_idx_type c1, + octave_idx_type nr, octave_idx_type nc) const; // extract row or column i. - FloatComplexRowVector row (octave_idx_type i) const; + OCTAVE_API FloatComplexRowVector row (octave_idx_type i) const; - FloatComplexColumnVector column (octave_idx_type i) const; + OCTAVE_API FloatComplexColumnVector column (octave_idx_type i) const; void resize (octave_idx_type nr, octave_idx_type nc, const FloatComplex& rfv = FloatComplex (0)) @@ -205,34 +212,38 @@ float& rcon, bool force, bool calc_cond) const; public: - FloatComplexMatrix inverse (void) const; - FloatComplexMatrix inverse (octave_idx_type& info) const; - FloatComplexMatrix inverse (octave_idx_type& info, float& rcon, - bool force = false, bool calc_cond = true) const; + OCTAVE_API FloatComplexMatrix inverse (void) const; + OCTAVE_API FloatComplexMatrix inverse (octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + inverse (octave_idx_type& info, float& rcon, bool force = false, + bool calc_cond = true) const; - FloatComplexMatrix inverse (MatrixType& mattype) const; - FloatComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info) const; - FloatComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info, - float& rcon, bool force = false, - bool calc_cond = true) const; + OCTAVE_API FloatComplexMatrix inverse (MatrixType& mattype) const; + OCTAVE_API FloatComplexMatrix + inverse (MatrixType& mattype, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + inverse (MatrixType& mattype, octave_idx_type& info, float& rcon, + bool force = false, bool calc_cond = true) const; - FloatComplexMatrix pseudo_inverse (float tol = 0.0) const; + OCTAVE_API FloatComplexMatrix pseudo_inverse (float tol = 0.0) const; - FloatComplexMatrix fourier (void) const; - FloatComplexMatrix ifourier (void) const; + OCTAVE_API FloatComplexMatrix fourier (void) const; + OCTAVE_API FloatComplexMatrix ifourier (void) const; - FloatComplexMatrix fourier2d (void) const; - FloatComplexMatrix ifourier2d (void) const; + OCTAVE_API FloatComplexMatrix fourier2d (void) const; + OCTAVE_API FloatComplexMatrix ifourier2d (void) const; - FloatComplexDET determinant (void) const; - FloatComplexDET determinant (octave_idx_type& info) const; - FloatComplexDET determinant (octave_idx_type& info, float& rcon, - bool calc_cond = true) const; - FloatComplexDET determinant (MatrixType& mattype, octave_idx_type& info, - float& rcon, bool calc_cond = true) const; + OCTAVE_API FloatComplexDET determinant (void) const; + OCTAVE_API FloatComplexDET determinant (octave_idx_type& info) const; + OCTAVE_API FloatComplexDET + determinant (octave_idx_type& info, float& rcon, + bool calc_cond = true) const; + OCTAVE_API FloatComplexDET + determinant (MatrixType& mattype, octave_idx_type& info, + float& rcon, bool calc_cond = true) const; - float rcond (void) const; - float rcond (MatrixType& mattype) const; + OCTAVE_API float rcond (void) const; + OCTAVE_API float rcond (MatrixType& mattype) const; private: // Upper triangular matrix solvers @@ -257,187 +268,208 @@ public: // Generic interface to solver with no probing of type - FloatComplexMatrix solve (MatrixType& mattype, const FloatMatrix& b) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatMatrix& b, - octave_idx_type& info, float& rcon) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatMatrix& b, - octave_idx_type& info, - float& rcon, solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; - - FloatComplexMatrix solve (MatrixType& mattype, - const FloatComplexMatrix& b) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatComplexMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatComplexMatrix& b, - octave_idx_type& info, float& rcon) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatComplexMatrix& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatMatrix& b) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatMatrix& b, + octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatMatrix& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatMatrix& b, octave_idx_type& info, + float& rcon, solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatColumnVector& b) const; - FloatComplexColumnVector solve (MatrixType& mattype, const FloatColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector solve (MatrixType& mattype, const FloatColumnVector& b, - octave_idx_type& info, float& rcon) const; - FloatComplexColumnVector solve (MatrixType& mattype, const FloatColumnVector& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b, + octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b, + octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b, + octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b, - octave_idx_type& info, float& rcon) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b, + octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b, + octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; + + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b, + octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b, + octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; // Generic interface to solver with probing of type - FloatComplexMatrix solve (const FloatMatrix& b) const; - FloatComplexMatrix solve (const FloatMatrix& b, octave_idx_type& info) const; - FloatComplexMatrix solve (const FloatMatrix& b, octave_idx_type& info, - float& rcon) const; - FloatComplexMatrix solve (const FloatMatrix& b, octave_idx_type& info, - float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexMatrix solve (const FloatMatrix& b) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatMatrix& b, octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatMatrix& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b, octave_idx_type& info, - float& rcon) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b, octave_idx_type& info, - float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexMatrix solve (const FloatComplexMatrix& b) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatComplexMatrix& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatComplexMatrix& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexColumnVector solve (const FloatColumnVector& b) const; - FloatComplexColumnVector solve (const FloatColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector solve (const FloatColumnVector& b, - octave_idx_type& info, - float& rcon) const; - FloatComplexColumnVector solve (const FloatColumnVector& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexColumnVector solve (const FloatColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatColumnVector& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatColumnVector& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b, - octave_idx_type& info, - float& rcon) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b, - octave_idx_type& info, - float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexMatrix lssolve (const FloatMatrix& b) const; - FloatComplexMatrix lssolve (const FloatMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix lssolve (const FloatMatrix& b, octave_idx_type& info, - octave_idx_type& rank) const; - FloatComplexMatrix lssolve (const FloatMatrix& b, octave_idx_type& info, - octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatComplexMatrix lssolve (const FloatMatrix& b) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatMatrix& b, octave_idx_type& info, octave_idx_type& rank) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatMatrix& b, octave_idx_type& info, octave_idx_type& rank, + float& rcon) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b, - octave_idx_type& info, octave_idx_type& rank) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b, - octave_idx_type& info, octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatComplexMatrix lssolve (const FloatComplexMatrix& b) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; - FloatComplexColumnVector lssolve (const FloatColumnVector& b) const; - FloatComplexColumnVector lssolve (const FloatColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector lssolve (const FloatColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank) const; - FloatComplexColumnVector lssolve (const FloatColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; // matrix by diagonal matrix -> matrix operations - FloatComplexMatrix& operator += (const FloatDiagMatrix& a); - FloatComplexMatrix& operator -= (const FloatDiagMatrix& a); + OCTAVE_API FloatComplexMatrix& operator += (const FloatDiagMatrix& a); + OCTAVE_API FloatComplexMatrix& operator -= (const FloatDiagMatrix& a); - FloatComplexMatrix& operator += (const FloatComplexDiagMatrix& a); - FloatComplexMatrix& operator -= (const FloatComplexDiagMatrix& a); + OCTAVE_API FloatComplexMatrix& operator += (const FloatComplexDiagMatrix& a); + OCTAVE_API FloatComplexMatrix& operator -= (const FloatComplexDiagMatrix& a); // matrix by matrix -> matrix operations - FloatComplexMatrix& operator += (const FloatMatrix& a); - FloatComplexMatrix& operator -= (const FloatMatrix& a); + OCTAVE_API FloatComplexMatrix& operator += (const FloatMatrix& a); + OCTAVE_API FloatComplexMatrix& operator -= (const FloatMatrix& a); // unary operations - boolMatrix operator ! (void) const; + OCTAVE_API boolMatrix operator ! (void) const; // other operations - boolMatrix all (int dim = -1) const; - boolMatrix any (int dim = -1) const; + OCTAVE_API boolMatrix all (int dim = -1) const; + OCTAVE_API boolMatrix any (int dim = -1) const; - FloatComplexMatrix cumprod (int dim = -1) const; - FloatComplexMatrix cumsum (int dim = -1) const; - FloatComplexMatrix prod (int dim = -1) const; - FloatComplexMatrix sum (int dim = -1) const; - FloatComplexMatrix sumsq (int dim = -1) const; - FloatMatrix abs (void) const; + OCTAVE_API FloatComplexMatrix cumprod (int dim = -1) const; + OCTAVE_API FloatComplexMatrix cumsum (int dim = -1) const; + OCTAVE_API FloatComplexMatrix prod (int dim = -1) const; + OCTAVE_API FloatComplexMatrix sum (int dim = -1) const; + OCTAVE_API FloatComplexMatrix sumsq (int dim = -1) const; + OCTAVE_API FloatMatrix abs (void) const; - FloatComplexMatrix diag (octave_idx_type k = 0) const; + OCTAVE_API FloatComplexMatrix diag (octave_idx_type k = 0) const; - FloatComplexDiagMatrix diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API FloatComplexDiagMatrix + diag (octave_idx_type m, octave_idx_type n) const; - bool row_is_real_only (octave_idx_type) const; - bool column_is_real_only (octave_idx_type) const; + OCTAVE_API bool row_is_real_only (octave_idx_type) const; + OCTAVE_API bool column_is_real_only (octave_idx_type) const; - FloatComplexColumnVector row_min (void) const; - FloatComplexColumnVector row_max (void) const; + OCTAVE_API FloatComplexColumnVector row_min (void) const; + OCTAVE_API FloatComplexColumnVector row_max (void) const; - FloatComplexColumnVector row_min (Array<octave_idx_type>& index) const; - FloatComplexColumnVector row_max (Array<octave_idx_type>& index) const; + OCTAVE_API FloatComplexColumnVector + row_min (Array<octave_idx_type>& index) const; + OCTAVE_API FloatComplexColumnVector + row_max (Array<octave_idx_type>& index) const; - FloatComplexRowVector column_min (void) const; - FloatComplexRowVector column_max (void) const; + OCTAVE_API FloatComplexRowVector column_min (void) const; + OCTAVE_API FloatComplexRowVector column_max (void) const; - FloatComplexRowVector column_min (Array<octave_idx_type>& index) const; - FloatComplexRowVector column_max (Array<octave_idx_type>& index) const; + OCTAVE_API FloatComplexRowVector + column_min (Array<octave_idx_type>& index) const; + OCTAVE_API FloatComplexRowVector + column_max (Array<octave_idx_type>& index) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const FloatComplexMatrix& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - FloatComplexMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatComplexMatrix& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatComplexMatrix& a); }; extern OCTAVE_API FloatComplexMatrix conj (const FloatComplexMatrix& a);
--- a/liboctave/array/fCNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fCNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -55,7 +55,7 @@ template <typename U> FloatComplexNDArray (const Array<U>& a) : MArray<FloatComplex> (a) { } - FloatComplexNDArray (const charNDArray&); + OCTAVE_API FloatComplexNDArray (const charNDArray&); FloatComplexNDArray& operator = (const FloatComplexNDArray& a) { @@ -65,77 +65,80 @@ // unary operations - boolNDArray operator ! (void) const; + OCTAVE_API boolNDArray operator ! (void) const; // FIXME: this is not quite the right thing. - bool any_element_is_nan (void) const; - bool any_element_is_inf_or_nan (void) const; - bool all_elements_are_real (void) const; - bool all_integers (float& max_val, float& min_val) const; - bool too_large_for_float (void) const; + OCTAVE_API bool any_element_is_nan (void) const; + OCTAVE_API bool any_element_is_inf_or_nan (void) const; + OCTAVE_API bool all_elements_are_real (void) const; + OCTAVE_API bool all_integers (float& max_val, float& min_val) const; + OCTAVE_API bool too_large_for_float (void) const; - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; - FloatComplexNDArray cumprod (int dim = -1) const; - FloatComplexNDArray cumsum (int dim = -1) const; - FloatComplexNDArray prod (int dim = -1) const; - ComplexNDArray dprod (int dim = -1) const; - FloatComplexNDArray sum (int dim = -1) const; - ComplexNDArray dsum (int dim = -1) const; - FloatComplexNDArray sumsq (int dim = -1) const; - FloatComplexNDArray concat (const FloatComplexNDArray& rb, - const Array<octave_idx_type>& ra_idx); - FloatComplexNDArray concat (const FloatNDArray& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API FloatComplexNDArray cumprod (int dim = -1) const; + OCTAVE_API FloatComplexNDArray cumsum (int dim = -1) const; + OCTAVE_API FloatComplexNDArray prod (int dim = -1) const; + OCTAVE_API ComplexNDArray dprod (int dim = -1) const; + OCTAVE_API FloatComplexNDArray sum (int dim = -1) const; + OCTAVE_API ComplexNDArray dsum (int dim = -1) const; + OCTAVE_API FloatComplexNDArray sumsq (int dim = -1) const; + OCTAVE_API FloatComplexNDArray + concat (const FloatComplexNDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API FloatComplexNDArray + concat (const FloatNDArray& rb, const Array<octave_idx_type>& ra_idx); - FloatComplexNDArray max (int dim = -1) const; - FloatComplexNDArray max (Array<octave_idx_type>& index, int dim = -1) const; - FloatComplexNDArray min (int dim = -1) const; - FloatComplexNDArray min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatComplexNDArray max (int dim = -1) const; + OCTAVE_API FloatComplexNDArray + max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatComplexNDArray min (int dim = -1) const; + OCTAVE_API FloatComplexNDArray + min (Array<octave_idx_type>& index, int dim = -1) const; - FloatComplexNDArray cummax (int dim = -1) const; - FloatComplexNDArray cummax (Array<octave_idx_type>& index, - int dim = -1) const; - FloatComplexNDArray cummin (int dim = -1) const; - FloatComplexNDArray cummin (Array<octave_idx_type>& index, - int dim = -1) const; + OCTAVE_API FloatComplexNDArray cummax (int dim = -1) const; + OCTAVE_API FloatComplexNDArray + cummax (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatComplexNDArray cummin (int dim = -1) const; + OCTAVE_API FloatComplexNDArray + cummin (Array<octave_idx_type>& index, int dim = -1) const; - FloatComplexNDArray diff (octave_idx_type order = 1, int dim = -1) const; + OCTAVE_API FloatComplexNDArray + diff (octave_idx_type order = 1, int dim = -1) const; - FloatComplexNDArray& insert (const NDArray& a, - octave_idx_type r, octave_idx_type c); - FloatComplexNDArray& insert (const FloatComplexNDArray& a, - octave_idx_type r, octave_idx_type c); - FloatComplexNDArray& insert (const FloatComplexNDArray& a, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API FloatComplexNDArray& + insert (const NDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexNDArray& + insert (const FloatComplexNDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatComplexNDArray& + insert (const FloatComplexNDArray& a, const Array<octave_idx_type>& ra_idx); - FloatNDArray abs (void) const; - boolNDArray isnan (void) const; - boolNDArray isinf (void) const; - boolNDArray isfinite (void) const; + OCTAVE_API FloatNDArray abs (void) const; + OCTAVE_API boolNDArray isnan (void) const; + OCTAVE_API boolNDArray isinf (void) const; + OCTAVE_API boolNDArray isfinite (void) const; friend OCTAVE_API FloatComplexNDArray conj (const FloatComplexNDArray& a); - FloatComplexNDArray fourier (int dim = 1) const; - FloatComplexNDArray ifourier (int dim = 1) const; + OCTAVE_API FloatComplexNDArray fourier (int dim = 1) const; + OCTAVE_API FloatComplexNDArray ifourier (int dim = 1) const; - FloatComplexNDArray fourier2d (void) const; - FloatComplexNDArray ifourier2d (void) const; + OCTAVE_API FloatComplexNDArray fourier2d (void) const; + OCTAVE_API FloatComplexNDArray ifourier2d (void) const; - FloatComplexNDArray fourierNd (void) const; - FloatComplexNDArray ifourierNd (void) const; + OCTAVE_API FloatComplexNDArray fourierNd (void) const; + OCTAVE_API FloatComplexNDArray ifourierNd (void) const; FloatComplexNDArray squeeze (void) const { return MArray<FloatComplex>::squeeze (); } - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, const dim_vector& dimensions); // i/o @@ -147,9 +150,10 @@ // bool all_elements_are_real (void) const; // bool all_integers (float& max_val, float& min_val) const; - FloatComplexNDArray diag (octave_idx_type k = 0) const; + OCTAVE_API FloatComplexNDArray diag (octave_idx_type k = 0) const; - FloatComplexNDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API FloatComplexNDArray + diag (octave_idx_type m, octave_idx_type n) const; FloatComplexNDArray& changesign (void) {
--- a/liboctave/array/fCRowVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fCRowVector.h Mon May 10 23:27:38 2021 +0200 @@ -70,60 +70,65 @@ return *this; } - bool operator == (const FloatComplexRowVector& a) const; - bool operator != (const FloatComplexRowVector& a) const; + OCTAVE_API bool operator == (const FloatComplexRowVector& a) const; + OCTAVE_API bool operator != (const FloatComplexRowVector& a) const; // destructive insert/delete/reorder operations - FloatComplexRowVector& insert (const FloatRowVector& a, octave_idx_type c); - FloatComplexRowVector& insert (const FloatComplexRowVector& a, - octave_idx_type c); + OCTAVE_API FloatComplexRowVector& + insert (const FloatRowVector& a, octave_idx_type c); + OCTAVE_API FloatComplexRowVector& + insert (const FloatComplexRowVector& a, octave_idx_type c); - FloatComplexRowVector& fill (float val); - FloatComplexRowVector& fill (const FloatComplex& val); - FloatComplexRowVector& fill (float val, - octave_idx_type c1, octave_idx_type c2); - FloatComplexRowVector& fill (const FloatComplex& val, - octave_idx_type c1, octave_idx_type c2); + OCTAVE_API FloatComplexRowVector& fill (float val); + OCTAVE_API FloatComplexRowVector& fill (const FloatComplex& val); + OCTAVE_API FloatComplexRowVector& + fill (float val, octave_idx_type c1, octave_idx_type c2); + OCTAVE_API FloatComplexRowVector& + fill (const FloatComplex& val, octave_idx_type c1, octave_idx_type c2); - FloatComplexRowVector append (const FloatRowVector& a) const; - FloatComplexRowVector append (const FloatComplexRowVector& a) const; + OCTAVE_API FloatComplexRowVector append (const FloatRowVector& a) const; + OCTAVE_API FloatComplexRowVector + append (const FloatComplexRowVector& a) const; - FloatComplexColumnVector hermitian (void) const; - FloatComplexColumnVector transpose (void) const; + OCTAVE_API FloatComplexColumnVector hermitian (void) const; + OCTAVE_API FloatComplexColumnVector transpose (void) const; - friend FloatComplexRowVector conj (const FloatComplexRowVector& a); + friend OCTAVE_API FloatComplexRowVector + conj (const FloatComplexRowVector& a); // resize is the destructive equivalent for this one - FloatComplexRowVector extract (octave_idx_type c1, octave_idx_type c2) const; + OCTAVE_API FloatComplexRowVector + extract (octave_idx_type c1, octave_idx_type c2) const; - FloatComplexRowVector extract_n (octave_idx_type c1, octave_idx_type n) const; + OCTAVE_API FloatComplexRowVector + extract_n (octave_idx_type c1, octave_idx_type n) const; // row vector by row vector -> row vector operations - FloatComplexRowVector& operator += (const FloatRowVector& a); - FloatComplexRowVector& operator -= (const FloatRowVector& a); + OCTAVE_API FloatComplexRowVector& operator += (const FloatRowVector& a); + OCTAVE_API FloatComplexRowVector& operator -= (const FloatRowVector& a); // row vector by matrix -> row vector - friend FloatComplexRowVector operator * (const FloatComplexRowVector& a, - const FloatComplexMatrix& b); + friend OCTAVE_API FloatComplexRowVector + operator * (const FloatComplexRowVector& a, const FloatComplexMatrix& b); - friend FloatComplexRowVector operator * (const FloatRowVector& a, - const FloatComplexMatrix& b); + friend OCTAVE_API FloatComplexRowVector + operator * (const FloatRowVector& a, const FloatComplexMatrix& b); // other operations - FloatComplex min (void) const; - FloatComplex max (void) const; + OCTAVE_API FloatComplex min (void) const; + OCTAVE_API FloatComplex max (void) const; // i/o - friend std::ostream& operator << (std::ostream& os, - const FloatComplexRowVector& a); - friend std::istream& operator >> (std::istream& is, - FloatComplexRowVector& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatComplexRowVector& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatComplexRowVector& a); void resize (octave_idx_type n, const FloatComplex& rfv = FloatComplex (0)) { @@ -137,16 +142,16 @@ // row vector by column vector -> scalar -FloatComplex OCTAVE_API operator * (const FloatComplexRowVector& a, - const ColumnVector& b); +OCTAVE_API FloatComplex +operator * (const FloatComplexRowVector& a, const ColumnVector& b); -FloatComplex OCTAVE_API operator * (const FloatComplexRowVector& a, - const FloatComplexColumnVector& b); +OCTAVE_API FloatComplex +operator * (const FloatComplexRowVector& a, const FloatComplexColumnVector& b); // other operations -OCTAVE_API FloatComplexRowVector linspace (const FloatComplex& x1, - const FloatComplex& x2, octave_idx_type n); +OCTAVE_API FloatComplexRowVector +linspace (const FloatComplex& x1, const FloatComplex& x2, octave_idx_type n); MARRAY_FORWARD_DEFS (MArray, FloatComplexRowVector, FloatComplex)
--- a/liboctave/array/fColVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fColVector.h Mon May 10 23:27:38 2021 +0200 @@ -62,52 +62,56 @@ return *this; } - bool operator == (const FloatColumnVector& a) const; - bool operator != (const FloatColumnVector& a) const; + OCTAVE_API bool operator == (const FloatColumnVector& a) const; + OCTAVE_API bool operator != (const FloatColumnVector& a) const; // destructive insert/delete/reorder operations - FloatColumnVector& insert (const FloatColumnVector& a, octave_idx_type r); + OCTAVE_API FloatColumnVector& + insert (const FloatColumnVector& a, octave_idx_type r); - FloatColumnVector& fill (float val); - FloatColumnVector& fill (float val, octave_idx_type r1, octave_idx_type r2); + OCTAVE_API FloatColumnVector& fill (float val); + OCTAVE_API FloatColumnVector& + fill (float val, octave_idx_type r1, octave_idx_type r2); - FloatColumnVector stack (const FloatColumnVector& a) const; + OCTAVE_API FloatColumnVector stack (const FloatColumnVector& a) const; - FloatRowVector transpose (void) const; + OCTAVE_API FloatRowVector transpose (void) const; friend OCTAVE_API FloatColumnVector real (const FloatComplexColumnVector& a); friend OCTAVE_API FloatColumnVector imag (const FloatComplexColumnVector& a); // resize is the destructive equivalent for this one - FloatColumnVector extract (octave_idx_type r1, octave_idx_type r2) const; + OCTAVE_API FloatColumnVector + extract (octave_idx_type r1, octave_idx_type r2) const; - FloatColumnVector extract_n (octave_idx_type r1, octave_idx_type n) const; + OCTAVE_API FloatColumnVector + extract_n (octave_idx_type r1, octave_idx_type n) const; // matrix by column vector -> column vector operations - friend OCTAVE_API FloatColumnVector operator * (const FloatMatrix& a, - const FloatColumnVector& b); + friend OCTAVE_API FloatColumnVector + operator * (const FloatMatrix& a, const FloatColumnVector& b); // diagonal matrix by column vector -> column vector operations - friend OCTAVE_API FloatColumnVector operator * (const FloatDiagMatrix& a, - const FloatColumnVector& b); + friend OCTAVE_API FloatColumnVector + operator * (const FloatDiagMatrix& a, const FloatColumnVector& b); // other operations - float min (void) const; - float max (void) const; + OCTAVE_API float min (void) const; + OCTAVE_API float max (void) const; - FloatColumnVector abs (void) const; + OCTAVE_API FloatColumnVector abs (void) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const FloatColumnVector& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - FloatColumnVector& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatColumnVector& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatColumnVector& a); void resize (octave_idx_type n, const float& rfv = 0) {
--- a/liboctave/array/fDiagMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fDiagMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -66,53 +66,57 @@ FloatDiagMatrix (const Array<float>& a, octave_idx_type r, octave_idx_type c) : MDiagArray2<float> (a, r, c) { } - bool operator == (const FloatDiagMatrix& a) const; - bool operator != (const FloatDiagMatrix& a) const; + OCTAVE_API bool operator == (const FloatDiagMatrix& a) const; + OCTAVE_API bool operator != (const FloatDiagMatrix& a) const; - FloatDiagMatrix& fill (float val); - FloatDiagMatrix& fill (float val, octave_idx_type beg, octave_idx_type end); - FloatDiagMatrix& fill (const FloatColumnVector& a); - FloatDiagMatrix& fill (const FloatRowVector& a); - FloatDiagMatrix& fill (const FloatColumnVector& a, octave_idx_type beg); - FloatDiagMatrix& fill (const FloatRowVector& a, octave_idx_type beg); + OCTAVE_API FloatDiagMatrix& fill (float val); + OCTAVE_API FloatDiagMatrix& + fill (float val, octave_idx_type beg, octave_idx_type end); + OCTAVE_API FloatDiagMatrix& fill (const FloatColumnVector& a); + OCTAVE_API FloatDiagMatrix& fill (const FloatRowVector& a); + OCTAVE_API FloatDiagMatrix& + fill (const FloatColumnVector& a, octave_idx_type beg); + OCTAVE_API FloatDiagMatrix& + fill (const FloatRowVector& a, octave_idx_type beg); FloatDiagMatrix transpose (void) const { return MDiagArray2<float>::transpose (); } - FloatDiagMatrix abs (void) const; + OCTAVE_API FloatDiagMatrix abs (void) const; friend OCTAVE_API FloatDiagMatrix real (const FloatComplexDiagMatrix& a); friend OCTAVE_API FloatDiagMatrix imag (const FloatComplexDiagMatrix& a); // resize is the destructive analog for this one - FloatMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API FloatMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; // extract row or column i. - FloatRowVector row (octave_idx_type i) const; - FloatRowVector row (char *s) const; + OCTAVE_API FloatRowVector row (octave_idx_type i) const; + OCTAVE_API FloatRowVector row (char *s) const; - FloatColumnVector column (octave_idx_type i) const; - FloatColumnVector column (char *s) const; + OCTAVE_API FloatColumnVector column (octave_idx_type i) const; + OCTAVE_API FloatColumnVector column (char *s) const; - FloatDiagMatrix inverse (void) const; - FloatDiagMatrix inverse (octave_idx_type& info) const; - FloatDiagMatrix pseudo_inverse (float tol = 0.0f) const; + OCTAVE_API FloatDiagMatrix inverse (void) const; + OCTAVE_API FloatDiagMatrix inverse (octave_idx_type& info) const; + OCTAVE_API FloatDiagMatrix pseudo_inverse (float tol = 0.0f) const; // other operations FloatColumnVector extract_diag (octave_idx_type k = 0) const { return MDiagArray2<float>::extract_diag (k); } - FloatDET determinant (void) const; - float rcond (void) const; + OCTAVE_API FloatDET determinant (void) const; + OCTAVE_API float rcond (void) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const FloatDiagMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatDiagMatrix& a); }; @@ -121,8 +125,8 @@ // diagonal matrix by diagonal matrix -> diagonal matrix operations -OCTAVE_API FloatDiagMatrix operator * (const FloatDiagMatrix& a, - const FloatDiagMatrix& b); +OCTAVE_API FloatDiagMatrix +operator * (const FloatDiagMatrix& a, const FloatDiagMatrix& b); MDIAGARRAY2_FORWARD_DEFS (MDiagArray2, FloatDiagMatrix, float)
--- a/liboctave/array/fMatrix.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fMatrix.h Mon May 10 23:27:38 2021 +0200 @@ -84,51 +84,52 @@ template <typename U> FloatMatrix (const Array<U>& a) : FloatNDArray (a.as_matrix ()) { } - explicit FloatMatrix (const FloatRowVector& rv); + explicit OCTAVE_API FloatMatrix (const FloatRowVector& rv); - explicit FloatMatrix (const FloatColumnVector& cv); + explicit OCTAVE_API FloatMatrix (const FloatColumnVector& cv); - explicit FloatMatrix (const FloatDiagMatrix& a); + explicit OCTAVE_API FloatMatrix (const FloatDiagMatrix& a); - explicit FloatMatrix (const MDiagArray2<float>& a); + explicit OCTAVE_API FloatMatrix (const MDiagArray2<float>& a); - explicit FloatMatrix (const DiagArray2<float>& a); + explicit OCTAVE_API FloatMatrix (const DiagArray2<float>& a); - explicit FloatMatrix (const PermMatrix& a); + explicit OCTAVE_API FloatMatrix (const PermMatrix& a); - explicit FloatMatrix (const boolMatrix& a); + explicit OCTAVE_API FloatMatrix (const boolMatrix& a); - explicit FloatMatrix (const charMatrix& a); + explicit OCTAVE_API FloatMatrix (const charMatrix& a); - bool operator == (const FloatMatrix& a) const; - bool operator != (const FloatMatrix& a) const; + OCTAVE_API bool operator == (const FloatMatrix& a) const; + OCTAVE_API bool operator != (const FloatMatrix& a) const; - bool issymmetric (void) const; + OCTAVE_API bool issymmetric (void) const; // destructive insert/delete/reorder operations - FloatMatrix& insert (const FloatMatrix& a, - octave_idx_type r, octave_idx_type c); - FloatMatrix& insert (const FloatRowVector& a, - octave_idx_type r, octave_idx_type c); - FloatMatrix& insert (const FloatColumnVector& a, - octave_idx_type r, octave_idx_type c); - FloatMatrix& insert (const FloatDiagMatrix& a, - octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatMatrix& + insert (const FloatMatrix& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatMatrix& + insert (const FloatRowVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatMatrix& + insert (const FloatColumnVector& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatMatrix& + insert (const FloatDiagMatrix& a, octave_idx_type r, octave_idx_type c); - FloatMatrix& fill (float val); - FloatMatrix& fill (float val, octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2); + OCTAVE_API FloatMatrix& fill (float val); + OCTAVE_API FloatMatrix& + fill (float val, octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2); - FloatMatrix append (const FloatMatrix& a) const; - FloatMatrix append (const FloatRowVector& a) const; - FloatMatrix append (const FloatColumnVector& a) const; - FloatMatrix append (const FloatDiagMatrix& a) const; + OCTAVE_API FloatMatrix append (const FloatMatrix& a) const; + OCTAVE_API FloatMatrix append (const FloatRowVector& a) const; + OCTAVE_API FloatMatrix append (const FloatColumnVector& a) const; + OCTAVE_API FloatMatrix append (const FloatDiagMatrix& a) const; - FloatMatrix stack (const FloatMatrix& a) const; - FloatMatrix stack (const FloatRowVector& a) const; - FloatMatrix stack (const FloatColumnVector& a) const; - FloatMatrix stack (const FloatDiagMatrix& a) const; + OCTAVE_API FloatMatrix stack (const FloatMatrix& a) const; + OCTAVE_API FloatMatrix stack (const FloatRowVector& a) const; + OCTAVE_API FloatMatrix stack (const FloatColumnVector& a) const; + OCTAVE_API FloatMatrix stack (const FloatDiagMatrix& a) const; friend OCTAVE_API FloatMatrix real (const FloatComplexMatrix& a); friend OCTAVE_API FloatMatrix imag (const FloatComplexMatrix& a); @@ -140,17 +141,19 @@ // resize is the destructive equivalent for this one - FloatMatrix extract (octave_idx_type r1, octave_idx_type c1, - octave_idx_type r2, octave_idx_type c2) const; + OCTAVE_API FloatMatrix + extract (octave_idx_type r1, octave_idx_type c1, + octave_idx_type r2, octave_idx_type c2) const; - FloatMatrix extract_n (octave_idx_type r1, octave_idx_type c1, - octave_idx_type nr, octave_idx_type nc) const; + OCTAVE_API FloatMatrix + extract_n (octave_idx_type r1, octave_idx_type c1, + octave_idx_type nr, octave_idx_type nc) const; // extract row or column i. - FloatRowVector row (octave_idx_type i) const; + OCTAVE_API FloatRowVector row (octave_idx_type i) const; - FloatColumnVector column (octave_idx_type i) const; + OCTAVE_API FloatColumnVector column (octave_idx_type i) const; void resize (octave_idx_type nr, octave_idx_type nc, float rfv = 0) { @@ -165,33 +168,38 @@ float& rcon, bool force, bool calc_cond) const; public: - FloatMatrix inverse (void) const; - FloatMatrix inverse (octave_idx_type& info) const; - FloatMatrix inverse (octave_idx_type& info, float& rcon, bool force = false, - bool calc_cond = true) const; + OCTAVE_API FloatMatrix inverse (void) const; + OCTAVE_API FloatMatrix inverse (octave_idx_type& info) const; + OCTAVE_API FloatMatrix + inverse (octave_idx_type& info, float& rcon, bool force = false, + bool calc_cond = true) const; - FloatMatrix inverse (MatrixType& mattype) const; - FloatMatrix inverse (MatrixType& mattype, octave_idx_type& info) const; - FloatMatrix inverse (MatrixType& mattype, octave_idx_type& info, float& rcon, - bool force = false, bool calc_cond = true) const; + OCTAVE_API FloatMatrix inverse (MatrixType& mattype) const; + OCTAVE_API FloatMatrix + inverse (MatrixType& mattype, octave_idx_type& info) const; + OCTAVE_API FloatMatrix + inverse (MatrixType& mattype, octave_idx_type& info, float& rcon, + bool force = false, bool calc_cond = true) const; - FloatMatrix pseudo_inverse (float tol = 0.0) const; + OCTAVE_API FloatMatrix pseudo_inverse (float tol = 0.0) const; - FloatComplexMatrix fourier (void) const; - FloatComplexMatrix ifourier (void) const; + OCTAVE_API FloatComplexMatrix fourier (void) const; + OCTAVE_API FloatComplexMatrix ifourier (void) const; - FloatComplexMatrix fourier2d (void) const; - FloatComplexMatrix ifourier2d (void) const; + OCTAVE_API FloatComplexMatrix fourier2d (void) const; + OCTAVE_API FloatComplexMatrix ifourier2d (void) const; - FloatDET determinant (void) const; - FloatDET determinant (octave_idx_type& info) const; - FloatDET determinant (octave_idx_type& info, float& rcon, - bool calc_cond = true) const; - FloatDET determinant (MatrixType& mattype, octave_idx_type& info, - float& rcon, bool calc_cond = true) const; + OCTAVE_API FloatDET determinant (void) const; + OCTAVE_API FloatDET determinant (octave_idx_type& info) const; + OCTAVE_API FloatDET + determinant (octave_idx_type& info, float& rcon, + bool calc_cond = true) const; + OCTAVE_API FloatDET + determinant (MatrixType& mattype, octave_idx_type& info, float& rcon, + bool calc_cond = true) const; - float rcond (void) const; - float rcond (MatrixType& mattype) const; + OCTAVE_API float rcond (void) const; + OCTAVE_API float rcond (MatrixType& mattype) const; private: // Upper triangular matrix solvers @@ -216,162 +224,180 @@ public: // Generic interface to solver with no probing of type - FloatMatrix solve (MatrixType& mattype, const FloatMatrix& b) const; - FloatMatrix solve (MatrixType& mattype, const FloatMatrix& b, - octave_idx_type& info) const; - FloatMatrix solve (MatrixType& mattype, const FloatMatrix& b, - octave_idx_type& info, float& rcon) const; - FloatMatrix solve (MatrixType& mattype, const FloatMatrix& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatMatrix + solve (MatrixType& mattype, const FloatMatrix& b) const; + OCTAVE_API FloatMatrix + solve (MatrixType& mattype, const FloatMatrix& b, + octave_idx_type& info) const; + OCTAVE_API FloatMatrix + solve (MatrixType& mattype, const FloatMatrix& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatMatrix + solve (MatrixType& mattype, const FloatMatrix& b, octave_idx_type& info, + float& rcon, solve_singularity_handler sing_handler, + bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - FloatComplexMatrix solve (MatrixType& mattype, - const FloatComplexMatrix& b) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatComplexMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatComplexMatrix& b, - octave_idx_type& info, float& rcon) const; - FloatComplexMatrix solve (MatrixType& mattype, const FloatComplexMatrix& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - bool singular_fallback = true, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b, + octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b, + octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatComplexMatrix + solve (MatrixType& mattype, const FloatComplexMatrix& b, + octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, bool singular_fallback = true, + blas_trans_type transt = blas_no_trans) const; - FloatColumnVector solve (MatrixType& mattype, const FloatColumnVector& b) const; - FloatColumnVector solve (MatrixType& mattype, const FloatColumnVector& b, - octave_idx_type& info) const; - FloatColumnVector solve (MatrixType& mattype, const FloatColumnVector& b, - octave_idx_type& info, float& rcon) const; - FloatColumnVector solve (MatrixType& mattype, const FloatColumnVector& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b) const; + OCTAVE_API FloatColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API FloatColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b, + octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatColumnVector + solve (MatrixType& mattype, const FloatColumnVector& b, + octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b, - octave_idx_type& info, float& rcon) const; - FloatComplexColumnVector solve (MatrixType& mattype, - const FloatComplexColumnVector& b, - octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b, + octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b, + octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatComplexColumnVector + solve (MatrixType& mattype, const FloatComplexColumnVector& b, + octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; // Generic interface to solver with probing of type - FloatMatrix solve (const FloatMatrix& b) const; - FloatMatrix solve (const FloatMatrix& b, octave_idx_type& info) const; - FloatMatrix solve (const FloatMatrix& b, octave_idx_type& info, - float& rcon) const; - FloatMatrix solve (const FloatMatrix& b, octave_idx_type& info, float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatMatrix solve (const FloatMatrix& b) const; + OCTAVE_API FloatMatrix + solve (const FloatMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatMatrix + solve (const FloatMatrix& b, octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatMatrix + solve (const FloatMatrix& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b, octave_idx_type& info, - float& rcon) const; - FloatComplexMatrix solve (const FloatComplexMatrix& b, octave_idx_type& info, - float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexMatrix solve (const FloatComplexMatrix& b) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatComplexMatrix& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatComplexMatrix + solve (const FloatComplexMatrix& b, octave_idx_type& info, + float& rcon, solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatColumnVector solve (const FloatColumnVector& b) const; - FloatColumnVector solve (const FloatColumnVector& b, - octave_idx_type& info) const; - FloatColumnVector solve (const FloatColumnVector& b, octave_idx_type& info, - float& rcon) const; - FloatColumnVector solve (const FloatColumnVector& b, octave_idx_type& info, - float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatColumnVector solve (const FloatColumnVector& b) const; + OCTAVE_API FloatColumnVector + solve (const FloatColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatColumnVector + solve (const FloatColumnVector& b, octave_idx_type& info, float& rcon) const; + OCTAVE_API FloatColumnVector + solve (const FloatColumnVector& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b, - octave_idx_type& info, - float& rcon) const; - FloatComplexColumnVector solve (const FloatComplexColumnVector& b, - octave_idx_type& info, - float& rcon, - solve_singularity_handler sing_handler, - blas_trans_type transt = blas_no_trans) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b, octave_idx_type& info, + float& rcon) const; + OCTAVE_API FloatComplexColumnVector + solve (const FloatComplexColumnVector& b, octave_idx_type& info, float& rcon, + solve_singularity_handler sing_handler, + blas_trans_type transt = blas_no_trans) const; // Singular solvers - FloatMatrix lssolve (const FloatMatrix& b) const; - FloatMatrix lssolve (const FloatMatrix& b, octave_idx_type& info) const; - FloatMatrix lssolve (const FloatMatrix& b, octave_idx_type& info, - octave_idx_type& rank) const; - FloatMatrix lssolve (const FloatMatrix& b, octave_idx_type& info, - octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatMatrix lssolve (const FloatMatrix& b) const; + OCTAVE_API FloatMatrix + lssolve (const FloatMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatMatrix + lssolve (const FloatMatrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatMatrix + lssolve (const FloatMatrix& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b, - octave_idx_type& info) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b, - octave_idx_type& info, - octave_idx_type& rank) const; - FloatComplexMatrix lssolve (const FloatComplexMatrix& b, - octave_idx_type& info, octave_idx_type& rank, - float& rcon) const; + OCTAVE_API FloatComplexMatrix lssolve (const FloatComplexMatrix& b) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatComplexMatrix& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatComplexMatrix + lssolve (const FloatComplexMatrix& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; - FloatColumnVector lssolve (const FloatColumnVector& b) const; - FloatColumnVector lssolve (const FloatColumnVector& b, - octave_idx_type& info) const; - FloatColumnVector lssolve (const FloatColumnVector& b, octave_idx_type& info, - octave_idx_type& rank) const; - FloatColumnVector lssolve (const FloatColumnVector& b, octave_idx_type& info, - octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatColumnVector lssolve (const FloatColumnVector& b) const; + OCTAVE_API FloatColumnVector + lssolve (const FloatColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatColumnVector + lssolve (const FloatColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatColumnVector + lssolve (const FloatColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b, - octave_idx_type& info) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank) const; - FloatComplexColumnVector lssolve (const FloatComplexColumnVector& b, - octave_idx_type& info, - octave_idx_type& rank, float& rcon) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b, octave_idx_type& info) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank) const; + OCTAVE_API FloatComplexColumnVector + lssolve (const FloatComplexColumnVector& b, octave_idx_type& info, + octave_idx_type& rank, float& rcon) const; - FloatMatrix& operator += (const FloatDiagMatrix& a); - FloatMatrix& operator -= (const FloatDiagMatrix& a); + OCTAVE_API FloatMatrix& operator += (const FloatDiagMatrix& a); + OCTAVE_API FloatMatrix& operator -= (const FloatDiagMatrix& a); - FloatMatrix cumprod (int dim = -1) const; - FloatMatrix cumsum (int dim = -1) const; - FloatMatrix prod (int dim = -1) const; - FloatMatrix sum (int dim = -1) const; - FloatMatrix sumsq (int dim = -1) const; - FloatMatrix abs (void) const; + OCTAVE_API FloatMatrix cumprod (int dim = -1) const; + OCTAVE_API FloatMatrix cumsum (int dim = -1) const; + OCTAVE_API FloatMatrix prod (int dim = -1) const; + OCTAVE_API FloatMatrix sum (int dim = -1) const; + OCTAVE_API FloatMatrix sumsq (int dim = -1) const; + OCTAVE_API FloatMatrix abs (void) const; - FloatMatrix diag (octave_idx_type k = 0) const; + OCTAVE_API FloatMatrix diag (octave_idx_type k = 0) const; - FloatDiagMatrix diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API FloatDiagMatrix diag (octave_idx_type m, octave_idx_type n) const; - FloatColumnVector row_min (void) const; - FloatColumnVector row_max (void) const; + OCTAVE_API FloatColumnVector row_min (void) const; + OCTAVE_API FloatColumnVector row_max (void) const; - FloatColumnVector row_min (Array<octave_idx_type>& index) const; - FloatColumnVector row_max (Array<octave_idx_type>& index) const; + OCTAVE_API FloatColumnVector row_min (Array<octave_idx_type>& index) const; + OCTAVE_API FloatColumnVector row_max (Array<octave_idx_type>& index) const; - FloatRowVector column_min (void) const; - FloatRowVector column_max (void) const; + OCTAVE_API FloatRowVector column_min (void) const; + OCTAVE_API FloatRowVector column_max (void) const; - FloatRowVector column_min (Array<octave_idx_type>& index) const; - FloatRowVector column_max (Array<octave_idx_type>& index) const; + OCTAVE_API FloatRowVector column_min (Array<octave_idx_type>& index) const; + OCTAVE_API FloatRowVector column_max (Array<octave_idx_type>& index) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const FloatMatrix& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - FloatMatrix& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatMatrix& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatMatrix& a); }; // Publish externally used friend functions.
--- a/liboctave/array/fNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -59,7 +59,7 @@ template <typename U> explicit FloatNDArray (const intNDArray<U>& a) : MArray<float> (a) { } - FloatNDArray (const charNDArray&); + OCTAVE_API FloatNDArray (const charNDArray&); FloatNDArray& operator = (const FloatNDArray& a) { @@ -69,68 +69,72 @@ // unary operations - boolNDArray operator ! (void) const; + OCTAVE_API boolNDArray operator ! (void) const; - bool any_element_is_negative (bool = false) const; - bool any_element_is_positive (bool = false) const; - bool any_element_is_nan (void) const; - bool any_element_is_inf_or_nan (void) const; - bool any_element_not_one_or_zero (void) const; - bool all_elements_are_zero (void) const; - bool all_elements_are_int_or_inf_or_nan (void) const; - bool all_integers (float& max_val, float& min_val) const; - bool all_integers (void) const; - bool too_large_for_float (void) const; + OCTAVE_API bool any_element_is_negative (bool = false) const; + OCTAVE_API bool any_element_is_positive (bool = false) const; + OCTAVE_API bool any_element_is_nan (void) const; + OCTAVE_API bool any_element_is_inf_or_nan (void) const; + OCTAVE_API bool any_element_not_one_or_zero (void) const; + OCTAVE_API bool all_elements_are_zero (void) const; + OCTAVE_API bool all_elements_are_int_or_inf_or_nan (void) const; + OCTAVE_API bool all_integers (float& max_val, float& min_val) const; + OCTAVE_API bool all_integers (void) const; + OCTAVE_API bool too_large_for_float (void) const; // FIXME: this is not quite the right thing. - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; - FloatNDArray cumprod (int dim = -1) const; - FloatNDArray cumsum (int dim = -1) const; - FloatNDArray prod (int dim = -1) const; - NDArray dprod (int dim = -1) const; - FloatNDArray sum (int dim = -1) const; - NDArray dsum (int dim = -1) const; - FloatNDArray sumsq (int dim = -1) const; - FloatNDArray concat (const FloatNDArray& rb, - const Array<octave_idx_type>& ra_idx); - FloatComplexNDArray concat (const FloatComplexNDArray& rb, - const Array<octave_idx_type>& ra_idx); - charNDArray concat (const charNDArray& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API FloatNDArray cumprod (int dim = -1) const; + OCTAVE_API FloatNDArray cumsum (int dim = -1) const; + OCTAVE_API FloatNDArray prod (int dim = -1) const; + OCTAVE_API NDArray dprod (int dim = -1) const; + OCTAVE_API FloatNDArray sum (int dim = -1) const; + OCTAVE_API NDArray dsum (int dim = -1) const; + OCTAVE_API FloatNDArray sumsq (int dim = -1) const; + OCTAVE_API FloatNDArray + concat (const FloatNDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API FloatComplexNDArray + concat (const FloatComplexNDArray& rb, const Array<octave_idx_type>& ra_idx); + OCTAVE_API charNDArray + concat (const charNDArray& rb, const Array<octave_idx_type>& ra_idx); - FloatNDArray max (int dim = -1) const; - FloatNDArray max (Array<octave_idx_type>& index, int dim = -1) const; - FloatNDArray min (int dim = -1) const; - FloatNDArray min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatNDArray max (int dim = -1) const; + OCTAVE_API FloatNDArray + max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatNDArray min (int dim = -1) const; + OCTAVE_API FloatNDArray + min (Array<octave_idx_type>& index, int dim = -1) const; - FloatNDArray cummax (int dim = -1) const; - FloatNDArray cummax (Array<octave_idx_type>& index, int dim = -1) const; - FloatNDArray cummin (int dim = -1) const; - FloatNDArray cummin (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatNDArray cummax (int dim = -1) const; + OCTAVE_API FloatNDArray + cummax (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API FloatNDArray cummin (int dim = -1) const; + OCTAVE_API FloatNDArray + cummin (Array<octave_idx_type>& index, int dim = -1) const; - FloatNDArray diff (octave_idx_type order = 1, int dim = -1) const; + OCTAVE_API FloatNDArray diff (octave_idx_type order = 1, int dim = -1) const; - FloatNDArray& insert (const FloatNDArray& a, - octave_idx_type r, octave_idx_type c); - FloatNDArray& insert (const FloatNDArray& a, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API FloatNDArray& + insert (const FloatNDArray& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API FloatNDArray& + insert (const FloatNDArray& a, const Array<octave_idx_type>& ra_idx); - FloatNDArray abs (void) const; - boolNDArray isnan (void) const; - boolNDArray isinf (void) const; - boolNDArray isfinite (void) const; + OCTAVE_API FloatNDArray abs (void) const; + OCTAVE_API boolNDArray isnan (void) const; + OCTAVE_API boolNDArray isinf (void) const; + OCTAVE_API boolNDArray isfinite (void) const; - FloatComplexNDArray fourier (int dim = 1) const; - FloatComplexNDArray ifourier (int dim = 1) const; + OCTAVE_API FloatComplexNDArray fourier (int dim = 1) const; + OCTAVE_API FloatComplexNDArray ifourier (int dim = 1) const; - FloatComplexNDArray fourier2d (void) const; - FloatComplexNDArray ifourier2d (void) const; + OCTAVE_API FloatComplexNDArray fourier2d (void) const; + OCTAVE_API FloatComplexNDArray ifourier2d (void) const; - FloatComplexNDArray fourierNd (void) const; - FloatComplexNDArray ifourierNd (void) const; + OCTAVE_API FloatComplexNDArray fourierNd (void) const; + OCTAVE_API FloatComplexNDArray ifourierNd (void) const; friend OCTAVE_API FloatNDArray real (const FloatComplexNDArray& a); friend OCTAVE_API FloatNDArray imag (const FloatComplexNDArray& a); @@ -139,22 +143,23 @@ FloatNDArray squeeze (void) const { return MArray<float>::squeeze (); } - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, const dim_vector& dimensions); // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const FloatNDArray& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, FloatNDArray& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatNDArray& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatNDArray& a); - FloatNDArray diag (octave_idx_type k = 0) const; + OCTAVE_API FloatNDArray diag (octave_idx_type k = 0) const; - FloatNDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API FloatNDArray diag (octave_idx_type m, octave_idx_type n) const; FloatNDArray& changesign (void) {
--- a/liboctave/array/fRowVector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/fRowVector.h Mon May 10 23:27:38 2021 +0200 @@ -60,45 +60,49 @@ return *this; } - bool operator == (const FloatRowVector& a) const; - bool operator != (const FloatRowVector& a) const; + OCTAVE_API bool operator == (const FloatRowVector& a) const; + OCTAVE_API bool operator != (const FloatRowVector& a) const; // destructive insert/delete/reorder operations - FloatRowVector& insert (const FloatRowVector& a, octave_idx_type c); + OCTAVE_API FloatRowVector& + insert (const FloatRowVector& a, octave_idx_type c); - FloatRowVector& fill (float val); - FloatRowVector& fill (float val, octave_idx_type c1, octave_idx_type c2); + OCTAVE_API FloatRowVector& fill (float val); + OCTAVE_API FloatRowVector& + fill (float val, octave_idx_type c1, octave_idx_type c2); - FloatRowVector append (const FloatRowVector& a) const; + OCTAVE_API FloatRowVector append (const FloatRowVector& a) const; - FloatColumnVector transpose (void) const; + OCTAVE_API FloatColumnVector transpose (void) const; friend OCTAVE_API FloatRowVector real (const FloatComplexRowVector& a); friend OCTAVE_API FloatRowVector imag (const FloatComplexRowVector& a); // resize is the destructive equivalent for this one - FloatRowVector extract (octave_idx_type c1, octave_idx_type c2) const; + OCTAVE_API FloatRowVector + extract (octave_idx_type c1, octave_idx_type c2) const; - FloatRowVector extract_n (octave_idx_type c1, octave_idx_type n) const; + OCTAVE_API FloatRowVector + extract_n (octave_idx_type c1, octave_idx_type n) const; // row vector by matrix -> row vector - friend OCTAVE_API FloatRowVector operator * (const FloatRowVector& a, - const FloatMatrix& b); + friend OCTAVE_API FloatRowVector + operator * (const FloatRowVector& a, const FloatMatrix& b); // other operations - float min (void) const; - float max (void) const; + OCTAVE_API float min (void) const; + OCTAVE_API float max (void) const; // i/o - friend OCTAVE_API std::ostream& operator << (std::ostream& os, - const FloatRowVector& a); - friend OCTAVE_API std::istream& operator >> (std::istream& is, - FloatRowVector& a); + friend OCTAVE_API std::ostream& + operator << (std::ostream& os, const FloatRowVector& a); + friend OCTAVE_API std::istream& + operator >> (std::istream& is, FloatRowVector& a); void resize (octave_idx_type n, const float& rfv = 0) {
--- a/liboctave/array/idx-vector.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/idx-vector.h Mon May 10 23:27:38 2021 +0200 @@ -131,7 +131,7 @@ idx_colon_rep (void) = default; - idx_colon_rep (char c); + OCTAVE_API idx_colon_rep (char c); // No copying! @@ -141,7 +141,7 @@ octave_idx_type xelem (octave_idx_type i) const { return i; } - octave_idx_type checkelem (octave_idx_type i) const; + OCTAVE_API octave_idx_type checkelem (octave_idx_type i) const; octave_idx_type length (octave_idx_type n) const { return n; } @@ -156,7 +156,7 @@ bool is_colon_equiv (octave_idx_type) const { return true; } - std::ostream& print (std::ostream& os) const; + OCTAVE_API std::ostream& print (std::ostream& os) const; }; // To distinguish the "direct" constructors that blindly trust the data. @@ -177,7 +177,7 @@ idx_range_rep (octave_idx_type start, octave_idx_type limit, octave_idx_type step); - idx_range_rep (const range<double>&); + OCTAVE_API idx_range_rep (const range<double>&); // No copying! @@ -199,9 +199,9 @@ idx_class_type idx_class (void) const { return class_range; } - idx_base_rep * sort_uniq_clone (bool uniq = false); + OCTAVE_API idx_base_rep * sort_uniq_clone (bool uniq = false); - idx_base_rep * sort_idx (Array<octave_idx_type>&); + OCTAVE_API idx_base_rep * sort_idx (Array<octave_idx_type>&); bool is_colon_equiv (octave_idx_type n) const { return m_start == 0 && m_step == 1 && m_len == n; } @@ -213,11 +213,11 @@ octave_idx_type get_step (void) const { return m_step; } - std::ostream& print (std::ostream& os) const; + OCTAVE_API std::ostream& print (std::ostream& os) const; - range<double> unconvert (void) const; + OCTAVE_API range<double> unconvert (void) const; - Array<octave_idx_type> as_array (void); + OCTAVE_API Array<octave_idx_type> as_array (void); private: @@ -240,14 +240,14 @@ idx_scalar_rep& operator = (const idx_scalar_rep& idx) = delete; // Zero-based constructor. - idx_scalar_rep (octave_idx_type i); + OCTAVE_API idx_scalar_rep (octave_idx_type i); template <typename T> idx_scalar_rep (T x); octave_idx_type xelem (octave_idx_type) const { return m_data; } - octave_idx_type checkelem (octave_idx_type i) const; + OCTAVE_API octave_idx_type checkelem (octave_idx_type i) const; octave_idx_type length (octave_idx_type) const { return 1; } @@ -259,7 +259,7 @@ idx_base_rep * sort_uniq_clone (bool = false) { m_count++; return this; } - idx_base_rep * sort_idx (Array<octave_idx_type>&); + OCTAVE_API idx_base_rep * sort_idx (Array<octave_idx_type>&); bool is_colon_equiv (octave_idx_type n) const { return n == 1 && m_data == 0; } @@ -268,11 +268,11 @@ octave_idx_type get_data (void) const { return m_data; } - std::ostream& print (std::ostream& os) const; + OCTAVE_API std::ostream& print (std::ostream& os) const; - double unconvert (void) const; + OCTAVE_API double unconvert (void) const; - Array<octave_idx_type> as_array (void); + OCTAVE_API Array<octave_idx_type> as_array (void); private: @@ -295,19 +295,19 @@ { } // Zero-based constructor. - idx_vector_rep (const Array<octave_idx_type>& inda); + OCTAVE_API idx_vector_rep (const Array<octave_idx_type>& inda); - idx_vector_rep (const Array<octave_idx_type>& inda, - octave_idx_type ext, direct); + OCTAVE_API idx_vector_rep (const Array<octave_idx_type>& inda, + octave_idx_type ext, direct); template <typename T> idx_vector_rep (const Array<T>&); - idx_vector_rep (bool); + OCTAVE_API idx_vector_rep (bool); - idx_vector_rep (const Array<bool>&, octave_idx_type = -1); + OCTAVE_API idx_vector_rep (const Array<bool>&, octave_idx_type = -1); - idx_vector_rep (const Sparse<bool>&); + OCTAVE_API idx_vector_rep (const Sparse<bool>&); // No copying! @@ -319,7 +319,7 @@ octave_idx_type xelem (octave_idx_type i) const { return m_data[i]; } - octave_idx_type checkelem (octave_idx_type i) const; + OCTAVE_API octave_idx_type checkelem (octave_idx_type i) const; octave_idx_type length (octave_idx_type) const { return m_len; } @@ -330,17 +330,17 @@ idx_base_rep * sort_uniq_clone (bool uniq = false); - idx_base_rep * sort_idx (Array<octave_idx_type>&); + OCTAVE_API idx_base_rep * sort_idx (Array<octave_idx_type>&); dim_vector orig_dimensions (void) const { return m_orig_dims; } const octave_idx_type * get_data (void) const { return m_data; } - std::ostream& print (std::ostream& os) const; + OCTAVE_API std::ostream& print (std::ostream& os) const; - Array<double> unconvert (void) const; + OCTAVE_API Array<double> unconvert (void) const; - Array<octave_idx_type> as_array (void); + OCTAVE_API Array<octave_idx_type> as_array (void); private: @@ -374,9 +374,9 @@ m_lsti (-1), m_lste (-1), m_aowner (nullptr), m_orig_dims (od) { } - idx_mask_rep (bool); + OCTAVE_API idx_mask_rep (bool); - idx_mask_rep (const Array<bool>&, octave_idx_type = -1); + OCTAVE_API idx_mask_rep (const Array<bool>&, octave_idx_type = -1); // No copying! @@ -384,7 +384,7 @@ idx_mask_rep& operator = (const idx_mask_rep& idx) = delete; - ~idx_mask_rep (void); + OCTAVE_API ~idx_mask_rep (void); octave_idx_type xelem (octave_idx_type i) const; @@ -400,7 +400,7 @@ idx_base_rep * sort_uniq_clone (bool = false) { m_count++; return this; } - idx_base_rep * sort_idx (Array<octave_idx_type>&); + OCTAVE_API idx_base_rep * sort_idx (Array<octave_idx_type>&); dim_vector orig_dimensions (void) const { return m_orig_dims; } @@ -409,11 +409,11 @@ const bool * get_data (void) const { return m_data; } - std::ostream& print (std::ostream& os) const; + OCTAVE_API std::ostream& print (std::ostream& os) const; - Array<bool> unconvert (void) const; + OCTAVE_API Array<bool> unconvert (void) const; - Array<octave_idx_type> as_array (void); + OCTAVE_API Array<octave_idx_type> as_array (void); private: @@ -442,7 +442,7 @@ // The shared empty vector representation (for fast default // constructor). - static idx_vector_rep *nil_rep (void); + static OCTAVE_API idx_vector_rep *nil_rep (void); public: @@ -501,7 +501,7 @@ idx_vector (const Array<float>& nda) : m_rep (new idx_vector_rep (nda)) { } - idx_vector (const Array<bool>& nda); + OCTAVE_API idx_vector (const Array<bool>& nda); idx_vector (const range<double>& r) : m_rep (new idx_range_rep (r)) { } @@ -962,43 +962,44 @@ // A(i,j)(:) is equal to A(k)(:). // If the next index can be reduced, returns true and updates this. - bool maybe_reduce (octave_idx_type n, const idx_vector& j, - octave_idx_type nj); + OCTAVE_API bool + maybe_reduce (octave_idx_type n, const idx_vector& j, octave_idx_type nj); - bool is_cont_range (octave_idx_type n, - octave_idx_type& l, octave_idx_type& u) const; + OCTAVE_API bool + is_cont_range (octave_idx_type n, octave_idx_type& l, + octave_idx_type& u) const; // Returns the increment for ranges and colon, 0 for scalars and empty // vectors, 1st difference otherwise. - octave_idx_type increment (void) const; + OCTAVE_API octave_idx_type increment (void) const; - idx_vector + OCTAVE_API idx_vector complement (octave_idx_type n) const; - bool is_permutation (octave_idx_type n) const; + OCTAVE_API bool is_permutation (octave_idx_type n) const; // Returns the inverse permutation. If this is not a permutation on 1:n, the // result is undefined (but no error unless extent () != n). - idx_vector inverse_permutation (octave_idx_type n) const; + OCTAVE_API idx_vector inverse_permutation (octave_idx_type n) const; // Copies all the indices to a given array. Not allowed for colons. - void copy_data (octave_idx_type *data) const; + OCTAVE_API void copy_data (octave_idx_type *data) const; // If the index is a mask, convert it to index vector. - idx_vector unmask (void) const; + OCTAVE_API idx_vector unmask (void) const; // Unconverts the index to a scalar, Range, double array or a mask. - void unconvert (idx_class_type& iclass, - double& scalar, range<double>& range, - Array<double>& array, Array<bool>& mask) const; + OCTAVE_API void + unconvert (idx_class_type& iclass, double& scalar, range<double>& range, + Array<double>& array, Array<bool>& mask) const; - Array<octave_idx_type> as_array (void) const; + OCTAVE_API Array<octave_idx_type> as_array (void) const; // Raw pointer to index array. This is non-const because it may be // necessary to mutate the index. - const octave_idx_type * raw (void); + const OCTAVE_API octave_idx_type * raw (void); - bool isvector (void) const; + OCTAVE_API bool isvector (void) const; // FIXME: these are here for compatibility. They should be removed // when no longer in use. @@ -1009,13 +1010,13 @@ bool is_colon_equiv (octave_idx_type n, int) const { return is_colon_equiv (n); } - octave_idx_type + OCTAVE_API octave_idx_type freeze (octave_idx_type z_len, const char *tag, bool resize_ok = false); void sort (bool uniq = false) { *this = sorted (uniq); } - octave_idx_type ones_count (void) const; + OCTAVE_API octave_idx_type ones_count (void) const; octave_idx_type max (void) const { return extent (1) - 1; }
--- a/liboctave/array/intNDArray.h Mon May 10 14:58:19 2021 -0400 +++ b/liboctave/array/intNDArray.h Mon May 10 23:27:38 2021 +0200 @@ -66,14 +66,14 @@ template <typename U> intNDArray (const intNDArray<U>& a) : MArray<T> (a) { } - boolNDArray operator ! (void) const; + OCTAVE_API boolNDArray operator ! (void) const; bool any_element_is_nan (void) const { return false; } - bool any_element_not_one_or_zero (void) const; + OCTAVE_API bool any_element_not_one_or_zero (void) const; - intNDArray diag (octave_idx_type k = 0) const; + OCTAVE_API intNDArray diag (octave_idx_type k = 0) const; - intNDArray diag (octave_idx_type m, octave_idx_type n) const; + OCTAVE_API intNDArray diag (octave_idx_type m, octave_idx_type n) const; intNDArray& changesign (void) { @@ -83,28 +83,32 @@ // FIXME: this is not quite the right thing. - boolNDArray all (int dim = -1) const; - boolNDArray any (int dim = -1) const; + OCTAVE_API boolNDArray all (int dim = -1) const; + OCTAVE_API boolNDArray any (int dim = -1) const; - intNDArray max (int dim = -1) const; - intNDArray max (Array<octave_idx_type>& index, int dim = -1) const; - intNDArray min (int dim = -1) const; - intNDArray min (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API intNDArray max (int dim = -1) const; + OCTAVE_API intNDArray + max (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API intNDArray min (int dim = -1) const; + OCTAVE_API intNDArray + min (Array<octave_idx_type>& index, int dim = -1) const; - intNDArray cummax (int dim = -1) const; - intNDArray cummax (Array<octave_idx_type>& index, int dim = -1) const; - intNDArray cummin (int dim = -1) const; - intNDArray cummin (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API intNDArray cummax (int dim = -1) const; + OCTAVE_API intNDArray + cummax (Array<octave_idx_type>& index, int dim = -1) const; + OCTAVE_API intNDArray cummin (int dim = -1) const; + OCTAVE_API intNDArray + cummin (Array<octave_idx_type>& index, int dim = -1) const; - intNDArray prod (int dim) const; - intNDArray sum (int dim) const; - NDArray dsum (int dim) const; - intNDArray cumsum (int dim) const; + OCTAVE_API intNDArray prod (int dim) const; + OCTAVE_API intNDArray sum (int dim) const; + OCTAVE_API NDArray dsum (int dim) const; + OCTAVE_API intNDArray cumsum (int dim) const; - intNDArray diff (octave_idx_type order = 1, int dim = -1) const; + OCTAVE_API intNDArray diff (octave_idx_type order = 1, int dim = -1) const; - intNDArray abs (void) const; - intNDArray signum (void) const; + OCTAVE_API intNDArray abs (void) const; + OCTAVE_API intNDArray signum (void) const; intNDArray squeeze (void) const { return intNDArray<T> (MArray<T>::squeeze ()); } @@ -112,30 +116,30 @@ intNDArray transpose (void) const { return intNDArray<T> (MArray<T>::transpose ()); } - intNDArray concat (const intNDArray<T>& rb, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API intNDArray + concat (const intNDArray<T>& rb, const Array<octave_idx_type>& ra_idx); - intNDArray& insert (const intNDArray<T>& a, - octave_idx_type r, octave_idx_type c); - intNDArray& insert (const intNDArray<T>& a, - const Array<octave_idx_type>& ra_idx); + OCTAVE_API intNDArray& + insert (const intNDArray<T>& a, octave_idx_type r, octave_idx_type c); + OCTAVE_API intNDArray& + insert (const intNDArray<T>& a, const Array<octave_idx_type>& ra_idx); - static void increment_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions, - int start_dimension = 0); + static OCTAVE_API void + increment_index (Array<octave_idx_type>& ra_idx, + const dim_vector& dimensions, int start_dimension = 0); - static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx, - const dim_vector& dimensions); + static OCTAVE_API octave_idx_type + compute_index (Array<octave_idx_type>& ra_idx, const dim_vector& dimensions); }; // i/o template <typename T> -OCTAVE_API -std::ostream& operator << (std::ostream& os, const intNDArray<T>& a); +OCTAVE_API std::ostream& +operator << (std::ostream& os, const intNDArray<T>& a); template <typename T> -OCTAVE_API -std::istream& operator >> (std::istream& is, intNDArray<T>& a); +OCTAVE_API std::istream& +operator >> (std::istream& is, intNDArray<T>& a); #endif