Mercurial > octave
changeset 29228:5c14f81e0937
Set API tags in files in liboctave/numeric (patch #8919).
Add API tag to template class definitions. Add API tag to (un-defined) functions
and member functions in headers. Export template class instantiations and
template functions from .cc files.
line wrap: on
line diff
--- a/liboctave/numeric/ODES.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/ODES.h Tue Dec 29 17:51:23 2020 +0100 @@ -67,10 +67,10 @@ ColumnVector parameter_vector (void) { return theta; } - void initialize (const ColumnVector& x, double t); + OCTAVE_API void initialize (const ColumnVector& x, double t); - void initialize (const ColumnVector& x, double t, - const ColumnVector& theta); + OCTAVE_API void + initialize (const ColumnVector& x, double t, const ColumnVector& theta); protected:
--- a/liboctave/numeric/aepbalance.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/aepbalance.cc Tue Dec 29 17:51:23 2020 +0100 @@ -48,6 +48,7 @@ namespace math { template <> + OCTAVE_API aepbalance<Matrix>::aepbalance (const Matrix& a, bool noperm, bool noscal) : balanced_mat (a), scale (), ilo (), ihi (), job (get_job (noperm, noscal)) @@ -72,7 +73,7 @@ } template <> - Matrix + OCTAVE_API Matrix aepbalance<Matrix>::balancing_matrix (void) const { F77_INT n = to_f77_int (balanced_mat.rows ()); @@ -98,6 +99,7 @@ } template <> + OCTAVE_API aepbalance<FloatMatrix>::aepbalance (const FloatMatrix& a, bool noperm, bool noscal) : balanced_mat (a), scale (), ilo (), ihi (), @@ -123,7 +125,7 @@ } template <> - FloatMatrix + OCTAVE_API FloatMatrix aepbalance<FloatMatrix>::balancing_matrix (void) const { F77_INT n = to_f77_int (balanced_mat.rows ()); @@ -149,6 +151,7 @@ } template <> + OCTAVE_API aepbalance<ComplexMatrix>::aepbalance (const ComplexMatrix& a, bool noperm, bool noscal) : balanced_mat (a), scale (), ilo (), ihi (), @@ -174,7 +177,7 @@ } template <> - ComplexMatrix + OCTAVE_API ComplexMatrix aepbalance<ComplexMatrix>::balancing_matrix (void) const { F77_INT n = to_f77_int (balanced_mat.rows ()); @@ -201,6 +204,7 @@ } template <> + OCTAVE_API aepbalance<FloatComplexMatrix>::aepbalance (const FloatComplexMatrix& a, bool noperm, bool noscal) : balanced_mat (a), scale (), ilo (), ihi (), @@ -226,7 +230,7 @@ } template <> - FloatComplexMatrix + OCTAVE_API FloatComplexMatrix aepbalance<FloatComplexMatrix>::balancing_matrix (void) const { F77_INT n = to_f77_int (balanced_mat.rows ());
--- a/liboctave/numeric/aepbalance.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/aepbalance.h Tue Dec 29 17:51:23 2020 +0100 @@ -35,7 +35,8 @@ namespace math { template <typename MT> - class aepbalance + class + aepbalance { public: @@ -43,7 +44,7 @@ aepbalance (void) : balanced_mat (), scale (), ilo (), ihi (), job () { } - aepbalance (const MT& a, bool noperm = false, bool noscal = false); + OCTAVE_API aepbalance (const MT& a, bool noperm = false, bool noscal = false); aepbalance (const aepbalance& a) : balanced_mat (a.balanced_mat), scale (a.scale), @@ -66,7 +67,7 @@ virtual ~aepbalance (void) = default; - MT balancing_matrix (void) const; + OCTAVE_API MT balancing_matrix (void) const; MT balanced_matrix (void) const {
--- a/liboctave/numeric/chol.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/chol.cc Tue Dec 29 17:51:23 2020 +0100 @@ -406,7 +406,7 @@ // Specializations. template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<Matrix>::init (const Matrix& a, bool upper, bool calc_cond) { octave_idx_type a_nr = a.rows (); @@ -481,7 +481,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void chol<Matrix>::update (const ColumnVector& u) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -498,7 +498,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<Matrix>::downdate (const ColumnVector& u) { F77_INT info = -1; @@ -519,7 +519,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<Matrix>::insert_sym (const ColumnVector& u, octave_idx_type j_arg) { F77_INT info = -1; @@ -546,7 +546,7 @@ } template <> - void + OCTAVE_API void chol<Matrix>::delete_sym (octave_idx_type j_arg) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -563,7 +563,7 @@ } template <> - void + OCTAVE_API void chol<Matrix>::shift_sym (octave_idx_type i_arg, octave_idx_type j_arg) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -582,7 +582,7 @@ #endif template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<FloatMatrix>::init (const FloatMatrix& a, bool upper, bool calc_cond) { octave_idx_type a_nr = a.rows (); @@ -657,7 +657,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void chol<FloatMatrix>::update (const FloatColumnVector& u) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -674,7 +674,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<FloatMatrix>::downdate (const FloatColumnVector& u) { F77_INT info = -1; @@ -695,7 +695,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<FloatMatrix>::insert_sym (const FloatColumnVector& u, octave_idx_type j_arg) { @@ -723,7 +723,7 @@ } template <> - void + OCTAVE_API void chol<FloatMatrix>::delete_sym (octave_idx_type j_arg) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -741,7 +741,7 @@ } template <> - void + OCTAVE_API void chol<FloatMatrix>::shift_sym (octave_idx_type i_arg, octave_idx_type j_arg) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -760,7 +760,7 @@ #endif template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<ComplexMatrix>::init (const ComplexMatrix& a, bool upper, bool calc_cond) { octave_idx_type a_nr = a.rows (); @@ -834,7 +834,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void chol<ComplexMatrix>::update (const ComplexColumnVector& u) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -854,7 +854,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<ComplexMatrix>::downdate (const ComplexColumnVector& u) { F77_INT info = -1; @@ -878,7 +878,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<ComplexMatrix>::insert_sym (const ComplexColumnVector& u, octave_idx_type j_arg) { @@ -909,7 +909,7 @@ } template <> - void + OCTAVE_API void chol<ComplexMatrix>::delete_sym (octave_idx_type j_arg) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -928,7 +928,7 @@ } template <> - void + OCTAVE_API void chol<ComplexMatrix>::shift_sym (octave_idx_type i_arg, octave_idx_type j_arg) { @@ -951,7 +951,7 @@ #endif template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<FloatComplexMatrix>::init (const FloatComplexMatrix& a, bool upper, bool calc_cond) { @@ -1026,7 +1026,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void chol<FloatComplexMatrix>::update (const FloatComplexColumnVector& u) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -1043,7 +1043,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<FloatComplexMatrix>::downdate (const FloatComplexColumnVector& u) { F77_INT info = -1; @@ -1065,7 +1065,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type chol<FloatComplexMatrix>::insert_sym (const FloatComplexColumnVector& u, octave_idx_type j_arg) { @@ -1095,7 +1095,7 @@ } template <> - void + OCTAVE_API void chol<FloatComplexMatrix>::delete_sym (octave_idx_type j_arg) { F77_INT n = to_f77_int (chol_mat.rows ()); @@ -1113,7 +1113,7 @@ } template <> - void + OCTAVE_API void chol<FloatComplexMatrix>::shift_sym (octave_idx_type i_arg, octave_idx_type j_arg) { @@ -1143,16 +1143,16 @@ template class chol<FloatComplexMatrix>; - template Matrix + template OCTAVE_API Matrix chol2inv<Matrix> (const Matrix& r); - template ComplexMatrix + template OCTAVE_API ComplexMatrix chol2inv<ComplexMatrix> (const ComplexMatrix& r); - template FloatMatrix + template OCTAVE_API FloatMatrix chol2inv<FloatMatrix> (const FloatMatrix& r); - template FloatComplexMatrix + template OCTAVE_API FloatComplexMatrix chol2inv<FloatComplexMatrix> (const FloatComplexMatrix& r); } }
--- a/liboctave/numeric/chol.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/chol.h Tue Dec 29 17:51:23 2020 +0100 @@ -76,19 +76,19 @@ COND_T rcond (void) const { return xrcond; } // Compute the inverse of a matrix using the Cholesky factorization. - T inverse (void) const; + OCTAVE_API T inverse (void) const; - void set (const T& R); + OCTAVE_API void set (const T& R); - void update (const VT& u); + OCTAVE_API void update (const VT& u); - octave_idx_type downdate (const VT& u); + OCTAVE_API octave_idx_type downdate (const VT& u); - octave_idx_type insert_sym (const VT& u, octave_idx_type j); + OCTAVE_API octave_idx_type insert_sym (const VT& u, octave_idx_type j); - void delete_sym (octave_idx_type j); + OCTAVE_API void delete_sym (octave_idx_type j); - void shift_sym (octave_idx_type i, octave_idx_type j); + OCTAVE_API void shift_sym (octave_idx_type i, octave_idx_type j); private: @@ -98,11 +98,11 @@ bool is_upper; - octave_idx_type init (const T& a, bool upper, bool calc_cond); + OCTAVE_API octave_idx_type init (const T& a, bool upper, bool calc_cond); }; template <typename T> - T + OCTAVE_API T chol2inv (const T& r); } }
--- a/liboctave/numeric/eigs-base.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/eigs-base.cc Tue Dec 29 17:51:23 2020 +0100 @@ -3944,7 +3944,7 @@ // Matrix template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricMatrix<Matrix> (const Matrix& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, Matrix& eig_vec, @@ -3953,7 +3953,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricMatrixShift<Matrix> (const Matrix& m, double sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, Matrix& eig_vec, @@ -3962,7 +3962,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricFunc<Matrix> (EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -3971,7 +3971,7 @@ bool rvec, bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricMatrix<Matrix> (const Matrix& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -3980,7 +3980,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricMatrixShift<Matrix> (const Matrix& m, double sigmar, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -3989,7 +3989,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricFunc<Matrix> (EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigmar, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -4000,7 +4000,7 @@ // SparseMatrix template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricMatrix<SparseMatrix> (const SparseMatrix& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, Matrix& eig_vec, @@ -4009,7 +4009,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricMatrixShift<SparseMatrix> (const SparseMatrix& m, double sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, Matrix& eig_vec, @@ -4018,7 +4018,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricFunc<SparseMatrix> (EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -4027,7 +4027,7 @@ bool rvec, bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricMatrix<SparseMatrix> (const SparseMatrix& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -4036,7 +4036,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricMatrixShift<SparseMatrix> (const SparseMatrix& m, double sigmar, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -4045,7 +4045,7 @@ bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricFunc<SparseMatrix> (EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigmar, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -4056,7 +4056,7 @@ // ComplexMatrix template -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricMatrix<ComplexMatrix> (const ComplexMatrix& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -4065,7 +4065,7 @@ bool rvec, bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricMatrixShift<ComplexMatrix> (const ComplexMatrix& m, Complex sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -4074,7 +4074,7 @@ bool rvec, bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricFunc<ComplexMatrix> (EigsComplexFunc fun, octave_idx_type n, const std::string& _typ, Complex sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -4085,7 +4085,7 @@ // SparseComplexMatrix template -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricMatrix<SparseComplexMatrix> (const SparseComplexMatrix& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -4094,7 +4094,7 @@ double tol, bool rvec, bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricMatrixShift<SparseComplexMatrix> (const SparseComplexMatrix& m, Complex sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -4103,7 +4103,7 @@ double tol, bool rvec, bool cholB, int disp, int maxit); template -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricFunc<SparseComplexMatrix> (EigsComplexFunc fun, octave_idx_type n, const std::string& _typ, Complex sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info,
--- a/liboctave/numeric/eigs-base.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/eigs-base.h Tue Dec 29 17:51:23 2020 +0100 @@ -44,7 +44,7 @@ int& eigs_error); template <typename M> -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricMatrix (const M& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, Matrix& eig_vec, @@ -54,7 +54,7 @@ bool cholB, int disp, int maxit); template <typename M> -octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricMatrixShift (const M& m, double sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, Matrix& eig_vec, @@ -64,7 +64,7 @@ bool cholB, int disp, int maxit); template <typename M> -extern OCTAVE_API octave_idx_type +OCTAVE_API octave_idx_type EigsRealSymmetricFunc (EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigma, octave_idx_type k, octave_idx_type p, @@ -75,7 +75,7 @@ bool cholB, int disp, int maxit); template <typename M> -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricMatrix (const M& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -85,7 +85,7 @@ bool cholB, int disp, int maxit); template <typename M> -octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricMatrixShift (const M& m, double sigmar, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -96,7 +96,7 @@ bool cholB, int disp, int maxit); template <typename M> -extern OCTAVE_API octave_idx_type +OCTAVE_API octave_idx_type EigsRealNonSymmetricFunc (EigsFunc fun, octave_idx_type n, const std::string& _typ, double sigmar, octave_idx_type k, octave_idx_type p, @@ -107,7 +107,7 @@ bool cholB, int disp, int maxit); template <typename M> -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricMatrix (const M& m, const std::string typ, octave_idx_type k, octave_idx_type p, octave_idx_type& info, ComplexMatrix& eig_vec, @@ -118,7 +118,7 @@ bool cholB, int disp, int maxit); template <typename M> -octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricMatrixShift (const M& m, Complex sigma, octave_idx_type k, octave_idx_type p, octave_idx_type& info, @@ -130,7 +130,7 @@ bool cholB, int disp, int maxit); template <typename M> -extern OCTAVE_API octave_idx_type +OCTAVE_API octave_idx_type EigsComplexNonSymmetricFunc (EigsComplexFunc fun, octave_idx_type n, const std::string& _typ, Complex sigma, octave_idx_type k, octave_idx_type p,
--- a/liboctave/numeric/gepbalance.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/gepbalance.cc Tue Dec 29 17:51:23 2020 +0100 @@ -43,7 +43,7 @@ namespace math { template <> - octave_idx_type + OCTAVE_API octave_idx_type gepbalance<Matrix>::init (const Matrix& a, const Matrix& b, const std::string& balance_job) { @@ -108,7 +108,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type gepbalance<FloatMatrix>::init (const FloatMatrix& a, const FloatMatrix& b, const std::string& balance_job) { @@ -174,7 +174,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type gepbalance<ComplexMatrix>::init (const ComplexMatrix& a, const ComplexMatrix& b, const std::string& balance_job) @@ -242,7 +242,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type gepbalance<FloatComplexMatrix>::init (const FloatComplexMatrix& a, const FloatComplexMatrix& b, const std::string& balance_job)
--- a/liboctave/numeric/gepbalance.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/gepbalance.h Tue Dec 29 17:51:23 2020 +0100 @@ -87,7 +87,8 @@ RT balancing_mat; RT balancing_mat2; - octave_idx_type init (const T& a, const T& b, const std::string& job); + OCTAVE_API octave_idx_type + init (const T& a, const T& b, const std::string& job); }; } }
--- a/liboctave/numeric/gsvd.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/gsvd.h Tue Dec 29 17:51:23 2020 +0100 @@ -34,6 +34,7 @@ { template <typename T> class + OCTAVE_API gsvd { public:
--- a/liboctave/numeric/hess.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/hess.cc Tue Dec 29 17:51:23 2020 +0100 @@ -41,7 +41,7 @@ namespace math { template <> - octave_idx_type + OCTAVE_API octave_idx_type hess<Matrix>::init (const Matrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -104,7 +104,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type hess<FloatMatrix>::init (const FloatMatrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -167,7 +167,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type hess<ComplexMatrix>::init (const ComplexMatrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -230,7 +230,7 @@ } template <> - octave_idx_type + OCTAVE_API octave_idx_type hess<FloatComplexMatrix>::init (const FloatComplexMatrix& a) { F77_INT a_nr = to_f77_int (a.rows ());
--- a/liboctave/numeric/hess.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/hess.h Tue Dec 29 17:51:23 2020 +0100 @@ -82,11 +82,11 @@ T hess_mat; T unitary_hess_mat; - octave_idx_type init (const T& a); + OCTAVE_API octave_idx_type init (const T& a); }; template <typename T> - extern std::ostream& + extern OCTAVE_API std::ostream& operator << (std::ostream& os, const hess<T>& a); } }
--- a/liboctave/numeric/lo-blas-proto.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/lo-blas-proto.h Tue Dec 29 17:51:23 2020 +0100 @@ -205,6 +205,7 @@ // XERBLA + OCTAVE_API F77_RET_T F77_FUNC (xerbla, XERBLA) (F77_CONST_CHAR_ARG_DECL, const F77_INT& F77_CHAR_ARG_LEN_DECL);
--- a/liboctave/numeric/lu.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/lu.cc Tue Dec 29 17:51:23 2020 +0100 @@ -270,6 +270,7 @@ // Specializations. template <> + OCTAVE_API lu<Matrix>::lu (const Matrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -293,7 +294,7 @@ #if defined (HAVE_QRUPDATE_LUU) template <> - void + OCTAVE_API void lu<Matrix>::update (const ColumnVector& u, const ColumnVector& v) { if (packed ()) @@ -319,7 +320,7 @@ } template <> - void + OCTAVE_API void lu<Matrix>::update (const Matrix& u, const Matrix& v) { if (packed ()) @@ -352,7 +353,7 @@ } template <> - void + OCTAVE_API void lu<Matrix>::update_piv (const ColumnVector& u, const ColumnVector& v) { if (packed ()) @@ -383,7 +384,7 @@ } template <> - void + OCTAVE_API void lu<Matrix>::update_piv (const Matrix& u, const Matrix& v) { if (packed ()) @@ -422,6 +423,7 @@ #endif template <> + OCTAVE_API lu<FloatMatrix>::lu (const FloatMatrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -445,7 +447,7 @@ #if defined (HAVE_QRUPDATE_LUU) template <> - void + OCTAVE_API void lu<FloatMatrix>::update (const FloatColumnVector& u, const FloatColumnVector& v) { @@ -473,7 +475,7 @@ } template <> - void + OCTAVE_API void lu<FloatMatrix>::update (const FloatMatrix& u, const FloatMatrix& v) { if (packed ()) @@ -506,7 +508,7 @@ } template <> - void + OCTAVE_API void lu<FloatMatrix>::update_piv (const FloatColumnVector& u, const FloatColumnVector& v) { @@ -538,7 +540,7 @@ } template <> - void + OCTAVE_API void lu<FloatMatrix>::update_piv (const FloatMatrix& u, const FloatMatrix& v) { if (packed ()) @@ -577,6 +579,7 @@ #endif template <> + OCTAVE_API lu<ComplexMatrix>::lu (const ComplexMatrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -601,7 +604,7 @@ #if defined (HAVE_QRUPDATE_LUU) template <> - void + OCTAVE_API void lu<ComplexMatrix>::update (const ComplexColumnVector& u, const ComplexColumnVector& v) { @@ -630,7 +633,7 @@ } template <> - void + OCTAVE_API void lu<ComplexMatrix>::update (const ComplexMatrix& u, const ComplexMatrix& v) { if (packed ()) @@ -666,7 +669,7 @@ } template <> - void + OCTAVE_API void lu<ComplexMatrix>::update_piv (const ComplexColumnVector& u, const ComplexColumnVector& v) { @@ -700,7 +703,7 @@ } template <> - void + OCTAVE_API void lu<ComplexMatrix>::update_piv (const ComplexMatrix& u, const ComplexMatrix& v) { @@ -744,6 +747,7 @@ #endif template <> + OCTAVE_API lu<FloatComplexMatrix>::lu (const FloatComplexMatrix& a) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -768,7 +772,7 @@ #if defined (HAVE_QRUPDATE_LUU) template <> - void + OCTAVE_API void lu<FloatComplexMatrix>::update (const FloatComplexColumnVector& u, const FloatComplexColumnVector& v) { @@ -797,7 +801,7 @@ } template <> - void + OCTAVE_API void lu<FloatComplexMatrix>::update (const FloatComplexMatrix& u, const FloatComplexMatrix& v) { @@ -832,7 +836,7 @@ } template <> - void + OCTAVE_API void lu<FloatComplexMatrix>::update_piv (const FloatComplexColumnVector& u, const FloatComplexColumnVector& v) { @@ -866,7 +870,7 @@ } template <> - void + OCTAVE_API void lu<FloatComplexMatrix>::update_piv (const FloatComplexMatrix& u, const FloatComplexMatrix& v) {
--- a/liboctave/numeric/lu.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/lu.h Tue Dec 29 17:51:23 2020 +0100 @@ -49,12 +49,12 @@ lu (void) : a_fact (), l_fact (), ipvt () { } - lu (const T& a); + OCTAVE_API lu (const T& a); lu (const lu& a) : a_fact (a.a_fact), l_fact (a.l_fact), ipvt (a.ipvt) { } - lu (const T& l, const T& u, const PermMatrix& p); + OCTAVE_API lu (const T& l, const T& u, const PermMatrix& p); lu& operator = (const lu& a) { @@ -70,35 +70,35 @@ virtual ~lu (void) = default; - bool packed (void) const; + OCTAVE_API bool packed (void) const; - void unpack (void); + OCTAVE_API void unpack (void); - T L (void) const; + OCTAVE_API T L (void) const; - T U (void) const; + OCTAVE_API T U (void) const; - T Y (void) const; + OCTAVE_API T Y (void) const; - PermMatrix P (void) const; + OCTAVE_API PermMatrix P (void) const; - ColumnVector P_vec (void) const; + OCTAVE_API ColumnVector P_vec (void) const; - bool regular (void) const; + OCTAVE_API bool regular (void) const; - void update (const VT& u, const VT& v); + OCTAVE_API void update (const VT& u, const VT& v); - void update (const T& u, const T& v); + OCTAVE_API void update (const T& u, const T& v); - void update_piv (const VT& u, const VT& v); + OCTAVE_API void update_piv (const VT& u, const VT& v); - void update_piv (const T& u, const T& v); + OCTAVE_API void update_piv (const T& u, const T& v); protected: // The result of getp is passed to other Octave Matrix functions, // so we use octave_idx_type. - Array<octave_idx_type> getp (void) const; + OCTAVE_API Array<octave_idx_type> getp (void) const; T a_fact; T l_fact;
--- a/liboctave/numeric/oct-rand.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/oct-rand.cc Tue Dec 29 17:51:23 2020 +0100 @@ -291,7 +291,7 @@ } template <> - double rand::uniform<double> (void) + OCTAVE_API double rand::uniform<double> (void) { double retval; @@ -304,7 +304,7 @@ } template <> - double rand::normal<double> (void) + OCTAVE_API double rand::normal<double> (void) { double retval; @@ -317,7 +317,7 @@ } template <> - double rand::exponential<double> (void) + OCTAVE_API double rand::exponential<double> (void) { double retval; @@ -330,7 +330,7 @@ } template <> - double rand::poisson<double> (double a) + OCTAVE_API double rand::poisson<double> (double a) { double retval; @@ -352,7 +352,7 @@ } template <> - double rand::gamma<double> (double a) + OCTAVE_API double rand::gamma<double> (double a) { double retval; @@ -370,7 +370,7 @@ } template <> - float rand::uniform<float> (void) + OCTAVE_API float rand::uniform<float> (void) { float retval; @@ -383,7 +383,7 @@ } template <> - float rand::normal<float> (void) + OCTAVE_API float rand::normal<float> (void) { float retval; @@ -396,7 +396,7 @@ } template <> - float rand::exponential<float> (void) + OCTAVE_API float rand::exponential<float> (void) { float retval; @@ -409,7 +409,7 @@ } template <> - float rand::poisson<float> (float a) + OCTAVE_API float rand::poisson<float> (float a) { float retval; @@ -434,7 +434,7 @@ } template <> - float rand::gamma<float> (float a) + OCTAVE_API float rand::gamma<float> (float a) { float retval; @@ -490,8 +490,8 @@ return retval; } - template double rand::do_scalar<double> (double); - template float rand::do_scalar<float> (float); + template OCTAVE_API double rand::do_scalar<double> (double); + template OCTAVE_API float rand::do_scalar<float> (float); template <typename T> Array<T> @@ -511,8 +511,10 @@ return retval; } - template Array<double> rand::do_vector<double> (octave_idx_type, double); - template Array<float> rand::do_vector<float> (octave_idx_type, float); + template OCTAVE_API Array<double> + rand::do_vector<double> (octave_idx_type, double); + template OCTAVE_API Array<float> + rand::do_vector<float> (octave_idx_type, float); NDArray rand::do_nd_array (const dim_vector& dims, double a) {
--- a/liboctave/numeric/oct-rand.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/oct-rand.h Tue Dec 29 17:51:23 2020 +0100 @@ -45,7 +45,7 @@ { protected: - rand (void); + OCTAVE_API rand (void); public: @@ -207,86 +207,88 @@ std::map<int, uint32NDArray> rand_states; // Return the current seed. - double do_seed (void); + OCTAVE_API double do_seed (void); // Set the seed. - void do_seed (double s); + OCTAVE_API void do_seed (double s); // Reset the seed. - void do_reset (); + OCTAVE_API void do_reset (); // Return the current state. - uint32NDArray do_state (const std::string& d); + OCTAVE_API uint32NDArray do_state (const std::string& d); // Set the current state/ - void do_state (const uint32NDArray& s, const std::string& d); + OCTAVE_API void do_state (const uint32NDArray& s, const std::string& d); // Reset the current state/ - void do_reset (const std::string& d); + OCTAVE_API void do_reset (const std::string& d); // Return the current distribution. - std::string do_distribution (void); + OCTAVE_API std::string do_distribution (void); // Set the current distribution. May be either "uniform" (the // default), "normal", "exponential", "poisson", or "gamma". - void do_distribution (const std::string& d); + OCTAVE_API void do_distribution (const std::string& d); - void do_uniform_distribution (void); + OCTAVE_API void do_uniform_distribution (void); - void do_normal_distribution (void); + OCTAVE_API void do_normal_distribution (void); - void do_exponential_distribution (void); + OCTAVE_API void do_exponential_distribution (void); - void do_poisson_distribution (void); + OCTAVE_API void do_poisson_distribution (void); - void do_gamma_distribution (void); + OCTAVE_API void do_gamma_distribution (void); // The following templates only make sense for double and float // types. - template <typename T> T uniform (void); + template <typename T> OCTAVE_API T uniform (void); - template <typename T> T normal (void); + template <typename T> OCTAVE_API T normal (void); - template <typename T> T exponential (void); + template <typename T> OCTAVE_API T exponential (void); - template <typename T> T poisson (T a); + template <typename T> OCTAVE_API T poisson (T a); - template <typename T> T gamma (T a); + template <typename T> OCTAVE_API T gamma (T a); // Return the next number from the sequence. - template <typename T> T do_scalar (T a = 1); + template <typename T> OCTAVE_API T do_scalar (T a = 1); // Return an array of numbers from the sequence. - template <typename T> Array<T> do_vector (octave_idx_type n, T a = 1); + template <typename T> OCTAVE_API Array<T> + do_vector (octave_idx_type n, T a = 1); // Return an N-dimensional array of numbers from the sequence, // filled in column major order. - NDArray do_nd_array (const dim_vector& dims, double a = 1.); + OCTAVE_API NDArray do_nd_array (const dim_vector& dims, double a = 1.); // Return an N-dimensional array of numbers from the sequence, // filled in column major order. - FloatNDArray do_float_nd_array (const dim_vector& dims, float a = 1.); + OCTAVE_API FloatNDArray + do_float_nd_array (const dim_vector& dims, float a = 1.); // Some helper functions. - void initialize_ranlib_generators (void); + OCTAVE_API void initialize_ranlib_generators (void); - void initialize_mersenne_twister (void); + OCTAVE_API void initialize_mersenne_twister (void); - uint32NDArray get_internal_state (void); + OCTAVE_API uint32NDArray get_internal_state (void); - void save_state (void); + OCTAVE_API void save_state (void); - int get_dist_id (const std::string& d); + OCTAVE_API int get_dist_id (const std::string& d); - void set_internal_state (const uint32NDArray& s); + OCTAVE_API void set_internal_state (const uint32NDArray& s); - void switch_to_generator (int dist); + OCTAVE_API void switch_to_generator (int dist); - void fill (octave_idx_type len, double *v, double a); + OCTAVE_API void fill (octave_idx_type len, double *v, double a); - void fill (octave_idx_type len, float *v, float a); + OCTAVE_API void fill (octave_idx_type len, float *v, float a); }; }
--- a/liboctave/numeric/qr.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/qr.cc Tue Dec 29 17:51:23 2020 +0100 @@ -378,7 +378,7 @@ // Specializations. template <> - void + OCTAVE_API void qr<Matrix>::form (octave_idx_type n_arg, Matrix& afact, double *tau, type qr_type) { @@ -449,7 +449,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::init (const Matrix& a, type qr_type) { F77_INT m = to_f77_int (a.rows ()); @@ -485,7 +485,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void qr<Matrix>::update (const ColumnVector& u, const ColumnVector& v) { F77_INT m = to_f77_int (q.rows ()); @@ -507,7 +507,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::update (const Matrix& u, const Matrix& v) { F77_INT m = to_f77_int (q.rows ()); @@ -535,7 +535,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::insert_col (const ColumnVector& u, octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -571,7 +571,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::insert_col (const Matrix& u, const Array<octave_idx_type>& j) { F77_INT m = to_f77_int (q.rows ()); @@ -629,7 +629,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::delete_col (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -658,7 +658,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::delete_col (const Array<octave_idx_type>& j) { F77_INT m = to_f77_int (q.rows ()); @@ -708,7 +708,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::insert_row (const RowVector& u, octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -740,7 +740,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::delete_row (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -766,7 +766,7 @@ } template <> - void + OCTAVE_API void qr<Matrix>::shift_cols (octave_idx_type i_arg, octave_idx_type j_arg) { F77_INT i = to_f77_int (i_arg); @@ -792,7 +792,7 @@ #endif template <> - void + OCTAVE_API void qr<FloatMatrix>::form (octave_idx_type n_arg, FloatMatrix& afact, float *tau, type qr_type) { @@ -863,7 +863,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::init (const FloatMatrix& a, type qr_type) { F77_INT m = to_f77_int (a.rows ()); @@ -899,7 +899,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void qr<FloatMatrix>::update (const FloatColumnVector& u, const FloatColumnVector& v) { F77_INT m = to_f77_int (q.rows ()); @@ -921,7 +921,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::update (const FloatMatrix& u, const FloatMatrix& v) { F77_INT m = to_f77_int (q.rows ()); @@ -949,7 +949,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::insert_col (const FloatColumnVector& u, octave_idx_type j_arg) { @@ -986,7 +986,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::insert_col (const FloatMatrix& u, const Array<octave_idx_type>& j) { @@ -1045,7 +1045,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::delete_col (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -1074,7 +1074,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::delete_col (const Array<octave_idx_type>& j) { F77_INT m = to_f77_int (q.rows ()); @@ -1124,7 +1124,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::insert_row (const FloatRowVector& u, octave_idx_type j_arg) { @@ -1157,7 +1157,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::delete_row (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -1184,7 +1184,7 @@ } template <> - void + OCTAVE_API void qr<FloatMatrix>::shift_cols (octave_idx_type i_arg, octave_idx_type j_arg) { F77_INT i = to_f77_int (i_arg); @@ -1210,7 +1210,7 @@ #endif template <> - void + OCTAVE_API void qr<ComplexMatrix>::form (octave_idx_type n_arg, ComplexMatrix& afact, Complex *tau, type qr_type) { @@ -1287,7 +1287,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::init (const ComplexMatrix& a, type qr_type) { F77_INT m = to_f77_int (a.rows ()); @@ -1327,7 +1327,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void qr<ComplexMatrix>::update (const ComplexColumnVector& u, const ComplexColumnVector& v) { @@ -1353,7 +1353,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::update (const ComplexMatrix& u, const ComplexMatrix& v) { F77_INT m = to_f77_int (q.rows ()); @@ -1385,7 +1385,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::insert_col (const ComplexColumnVector& u, octave_idx_type j_arg) { @@ -1423,7 +1423,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::insert_col (const ComplexMatrix& u, const Array<octave_idx_type>& j) { @@ -1485,7 +1485,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::delete_col (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -1515,7 +1515,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::delete_col (const Array<octave_idx_type>& j) { F77_INT m = to_f77_int (q.rows ()); @@ -1566,7 +1566,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::insert_row (const ComplexRowVector& u, octave_idx_type j_arg) { @@ -1600,7 +1600,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::delete_row (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -1628,7 +1628,7 @@ } template <> - void + OCTAVE_API void qr<ComplexMatrix>::shift_cols (octave_idx_type i_arg, octave_idx_type j_arg) { @@ -1656,7 +1656,7 @@ #endif template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::form (octave_idx_type n_arg, FloatComplexMatrix& afact, FloatComplex *tau, type qr_type) { @@ -1731,7 +1731,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::init (const FloatComplexMatrix& a, type qr_type) { F77_INT m = to_f77_int (a.rows ()); @@ -1769,7 +1769,7 @@ #if defined (HAVE_QRUPDATE) template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::update (const FloatComplexColumnVector& u, const FloatComplexColumnVector& v) { @@ -1795,7 +1795,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::update (const FloatComplexMatrix& u, const FloatComplexMatrix& v) { @@ -1827,7 +1827,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::insert_col (const FloatComplexColumnVector& u, octave_idx_type j_arg) { @@ -1864,7 +1864,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::insert_col (const FloatComplexMatrix& u, const Array<octave_idx_type>& j) { @@ -1924,7 +1924,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::delete_col (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -1954,7 +1954,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::delete_col (const Array<octave_idx_type>& j) { F77_INT m = to_f77_int (q.rows ()); @@ -2004,7 +2004,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::insert_row (const FloatComplexRowVector& u, octave_idx_type j_arg) { @@ -2038,7 +2038,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::delete_row (octave_idx_type j_arg) { F77_INT j = to_f77_int (j_arg); @@ -2066,7 +2066,7 @@ } template <> - void + OCTAVE_API void qr<FloatComplexMatrix>::shift_cols (octave_idx_type i_arg, octave_idx_type j_arg) {
--- a/liboctave/numeric/qr.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/qr.h Tue Dec 29 17:51:23 2020 +0100 @@ -59,7 +59,7 @@ init (a, qr_type); } - qr (const T& q, const T& r); + OCTAVE_API qr (const T& q, const T& r); qr (const qr& a) : q (a.q), r (a.r) { } @@ -80,39 +80,40 @@ T R (void) const { return r; } - type get_type (void) const; + OCTAVE_API type get_type (void) const; - bool regular (void) const; + OCTAVE_API bool regular (void) const; - void init (const T& a, type qr_type); + OCTAVE_API void init (const T& a, type qr_type); - void update (const CV_T& u, const CV_T& v); + OCTAVE_API void update (const CV_T& u, const CV_T& v); - void update (const T& u, const T& v); + OCTAVE_API void update (const T& u, const T& v); - void insert_col (const CV_T& u, octave_idx_type j); + OCTAVE_API void insert_col (const CV_T& u, octave_idx_type j); - void insert_col (const T& u, const Array<octave_idx_type>& j); + OCTAVE_API void insert_col (const T& u, const Array<octave_idx_type>& j); - void delete_col (octave_idx_type j); + OCTAVE_API void delete_col (octave_idx_type j); - void delete_col (const Array<octave_idx_type>& j); + OCTAVE_API void delete_col (const Array<octave_idx_type>& j); - void insert_row (const RV_T& u, octave_idx_type j); + OCTAVE_API void insert_row (const RV_T& u, octave_idx_type j); - void delete_row (octave_idx_type j); + OCTAVE_API void delete_row (octave_idx_type j); - void shift_cols (octave_idx_type i, octave_idx_type j); + OCTAVE_API void shift_cols (octave_idx_type i, octave_idx_type j); protected: T q; T r; - void form (octave_idx_type n, T& afact, ELT_T *tau, type qr_type); + OCTAVE_API void + form (octave_idx_type n, T& afact, ELT_T *tau, type qr_type); }; - extern void warn_qrupdate_once (void); + extern OCTAVE_API void warn_qrupdate_once (void); } }
--- a/liboctave/numeric/qrp.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/qrp.cc Tue Dec 29 17:51:23 2020 +0100 @@ -50,6 +50,7 @@ // Specialization. template <> + OCTAVE_API void qrp<Matrix>::init (const Matrix& a, type qr_type) { @@ -102,6 +103,7 @@ } template <> + OCTAVE_API qrp<Matrix>::qrp (const Matrix& a, type qr_type) : qr<Matrix> (), p () { @@ -109,6 +111,7 @@ } template <> + OCTAVE_API RowVector qrp<Matrix>::Pvec (void) const { @@ -118,6 +121,7 @@ } template <> + OCTAVE_API void qrp<FloatMatrix>::init (const FloatMatrix& a, type qr_type) { @@ -170,6 +174,7 @@ } template <> + OCTAVE_API qrp<FloatMatrix>::qrp (const FloatMatrix& a, type qr_type) : qr<FloatMatrix> (), p () { @@ -177,6 +182,7 @@ } template <> + OCTAVE_API FloatRowVector qrp<FloatMatrix>::Pvec (void) const { @@ -186,6 +192,7 @@ } template <> + OCTAVE_API void qrp<ComplexMatrix>::init (const ComplexMatrix& a, type qr_type) { @@ -246,6 +253,7 @@ } template <> + OCTAVE_API qrp<ComplexMatrix>::qrp (const ComplexMatrix& a, type qr_type) : qr<ComplexMatrix> (), p () { @@ -253,6 +261,7 @@ } template <> + OCTAVE_API RowVector qrp<ComplexMatrix>::Pvec (void) const { @@ -262,6 +271,7 @@ } template <> + OCTAVE_API void qrp<FloatComplexMatrix>::init (const FloatComplexMatrix& a, type qr_type) { @@ -322,6 +332,7 @@ } template <> + OCTAVE_API qrp<FloatComplexMatrix>::qrp (const FloatComplexMatrix& a, type qr_type) : qr<FloatComplexMatrix> (), p () { @@ -329,6 +340,7 @@ } template <> + OCTAVE_API FloatRowVector qrp<FloatComplexMatrix>::Pvec (void) const {
--- a/liboctave/numeric/qrp.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/qrp.h Tue Dec 29 17:51:23 2020 +0100 @@ -47,7 +47,7 @@ qrp (void) : qr<T> (), p () { } - qrp (const T&, type = qr<T>::std); + OCTAVE_API qrp (const T&, type = qr<T>::std); qrp (const qrp& a) : qr<T> (a), p (a.p) { } @@ -64,11 +64,11 @@ ~qrp (void) = default; - void init (const T&, type = qr<T>::std); + OCTAVE_API void init (const T&, type = qr<T>::std); PermMatrix P (void) const { return p; } - RV_T Pvec (void) const; + OCTAVE_API RV_T Pvec (void) const; private:
--- a/liboctave/numeric/randgamma.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/randgamma.cc Tue Dec 29 17:51:23 2020 +0100 @@ -131,6 +131,6 @@ } } - template void rand_gamma (double, octave_idx_type, double *); - template void rand_gamma (float, octave_idx_type, float *); + template OCTAVE_API void rand_gamma (double, octave_idx_type, double *); + template OCTAVE_API void rand_gamma (float, octave_idx_type, float *); }
--- a/liboctave/numeric/randgamma.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/randgamma.h Tue Dec 29 17:51:23 2020 +0100 @@ -34,7 +34,7 @@ namespace octave { template <typename T> - void + OCTAVE_API void rand_gamma (T a, octave_idx_type n, T *p); template <typename T>
--- a/liboctave/numeric/randmtzig.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/randmtzig.cc Tue Dec 29 17:51:23 2020 +0100 @@ -426,7 +426,7 @@ /* Determine mantissa for uniform doubles */ template <> - double + OCTAVE_API double rand_uniform<double> (void) { return randu53 (); @@ -434,7 +434,7 @@ /* Determine mantissa for uniform floats */ template <> - float + OCTAVE_API float rand_uniform<float> (void) { return randu24 (); @@ -581,7 +581,7 @@ */ - template <> double rand_normal<double> (void) + template <> OCTAVE_API double rand_normal<double> (void) { if (initt) create_ziggurat_tables (); @@ -645,7 +645,7 @@ } } - template <> double rand_exponential<double> (void) + template <> OCTAVE_API double rand_exponential<double> (void) { if (initt) create_ziggurat_tables (); @@ -671,17 +671,17 @@ } } - template <> void rand_uniform<double> (octave_idx_type n, double *p) + template <> OCTAVE_API void rand_uniform<double> (octave_idx_type n, double *p) { std::generate_n (p, n, [](void) { return rand_uniform<double> (); }); } - template <> void rand_normal (octave_idx_type n, double *p) + template <> OCTAVE_API void rand_normal (octave_idx_type n, double *p) { std::generate_n (p, n, [](void) { return rand_normal<double> (); }); } - template <> void rand_exponential (octave_idx_type n, double *p) + template <> OCTAVE_API void rand_exponential (octave_idx_type n, double *p) { std::generate_n (p, n, [](void) { return rand_exponential<double> (); }); } @@ -783,7 +783,7 @@ * distribution is exp(-0.5*x*x) */ - template <> float rand_normal<float> (void) + template <> OCTAVE_API float rand_normal<float> (void) { if (inittf) create_ziggurat_float_tables (); @@ -823,7 +823,7 @@ } } - template <> float rand_exponential<float> (void) + template <> OCTAVE_API float rand_exponential<float> (void) { if (inittf) create_ziggurat_float_tables (); @@ -849,17 +849,17 @@ } } - template <> void rand_uniform (octave_idx_type n, float *p) + template <> OCTAVE_API void rand_uniform (octave_idx_type n, float *p) { std::generate_n (p, n, [](void) { return rand_uniform<float> (); }); } - template <> void rand_normal (octave_idx_type n, float *p) + template <> OCTAVE_API void rand_normal (octave_idx_type n, float *p) { std::generate_n (p, n, [](void) { return rand_normal<float> (); }); } - template <> void rand_exponential (octave_idx_type n, float *p) + template <> OCTAVE_API void rand_exponential (octave_idx_type n, float *p) { std::generate_n (p, n, [](void) { return rand_exponential<float> (); }); }
--- a/liboctave/numeric/randmtzig.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/randmtzig.h Tue Dec 29 17:51:23 2020 +0100 @@ -75,46 +75,47 @@ { // Mersenne Twister. - extern void init_mersenne_twister (void); - extern void init_mersenne_twister (const uint32_t seed); - extern void init_mersenne_twister (const uint32_t *init_key, - const int key_length); + extern OCTAVE_API void init_mersenne_twister (void); + extern OCTAVE_API void init_mersenne_twister (const uint32_t seed); + extern OCTAVE_API void init_mersenne_twister (const uint32_t *init_key, + const int key_length); - extern void set_mersenne_twister_state (const uint32_t *save); - extern void get_mersenne_twister_state (uint32_t *save); + extern OCTAVE_API void set_mersenne_twister_state (const uint32_t *save); + extern OCTAVE_API void get_mersenne_twister_state (uint32_t *save); - template <typename T> T rand_uniform (void); - template <typename T> T rand_normal (void); - template <typename T> T rand_exponential (void); + template <typename T> OCTAVE_API T rand_uniform (void); + template <typename T> OCTAVE_API T rand_normal (void); + template <typename T> OCTAVE_API T rand_exponential (void); - template <typename T> void rand_uniform (octave_idx_type n, T *p); - template <typename T> void rand_normal (octave_idx_type n, T *p); - template <typename T> void rand_exponential (octave_idx_type n, T *p); + template <typename T> OCTAVE_API void rand_uniform (octave_idx_type n, T *p); + template <typename T> OCTAVE_API void rand_normal (octave_idx_type n, T *p); + template <typename T> OCTAVE_API void + rand_exponential (octave_idx_type n, T *p); - template <> double rand_uniform<double> (void); - template <> double rand_normal<double> (void); - template <> double rand_exponential<double> (void); + template <> OCTAVE_API double rand_uniform<double> (void); + template <> OCTAVE_API double rand_normal<double> (void); + template <> OCTAVE_API double rand_exponential<double> (void); - template <> float rand_uniform<float> (void); - template <> float rand_normal<float> (void); - template <> float rand_exponential<float> (void); + template <> OCTAVE_API float rand_uniform<float> (void); + template <> OCTAVE_API float rand_normal<float> (void); + template <> OCTAVE_API float rand_exponential<float> (void); - template <> void + template <> OCTAVE_API void rand_uniform<double> (octave_idx_type n, double *p); - template <> void + template <> OCTAVE_API void rand_normal<double> (octave_idx_type n, double *p); - template <> void + template <> OCTAVE_API void rand_exponential<double> (octave_idx_type n, double *p); - template <> void + template <> OCTAVE_API void rand_uniform<float> (octave_idx_type n, float *p); - template <> void + template <> OCTAVE_API void rand_normal<float> (octave_idx_type n, float *p); - template <> void + template <> OCTAVE_API void rand_exponential<float> (octave_idx_type n, float *p); }
--- a/liboctave/numeric/randpoisson.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/randpoisson.cc Tue Dec 29 17:51:23 2020 +0100 @@ -455,6 +455,6 @@ return ret; } - template double rand_poisson<double> (double); - template float rand_poisson<float> (float); + template OCTAVE_API double rand_poisson<double> (double); + template OCTAVE_API float rand_poisson<float> (float); }
--- a/liboctave/numeric/randpoisson.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/randpoisson.h Tue Dec 29 17:51:23 2020 +0100 @@ -33,9 +33,9 @@ namespace octave { - template <typename T> void rand_poisson (T L, octave_idx_type n, T *p); + template <typename T> OCTAVE_API void rand_poisson (T L, octave_idx_type n, T *p); - template <typename T> T rand_poisson (T L); + template <typename T> OCTAVE_API T rand_poisson (T L); } #endif
--- a/liboctave/numeric/schur.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/schur.cc Tue Dec 29 17:51:23 2020 +0100 @@ -98,7 +98,7 @@ } template <> - F77_INT + OCTAVE_API F77_INT schur<Matrix>::init (const Matrix& a, const std::string& ord, bool calc_unitary) { F77_INT a_nr = to_f77_int (a.rows ()); @@ -184,7 +184,7 @@ } template <> - F77_INT + OCTAVE_API F77_INT schur<FloatMatrix>::init (const FloatMatrix& a, const std::string& ord, bool calc_unitary) { @@ -271,7 +271,7 @@ } template <> - F77_INT + OCTAVE_API F77_INT schur<ComplexMatrix>::init (const ComplexMatrix& a, const std::string& ord, bool calc_unitary) { @@ -354,7 +354,7 @@ } template <> - schur<ComplexMatrix> + OCTAVE_API schur<ComplexMatrix> rsf2csf<ComplexMatrix, Matrix> (const Matrix& s_arg, const Matrix& u_arg) { ComplexMatrix s (s_arg); @@ -379,7 +379,7 @@ } template <> - F77_INT + OCTAVE_API F77_INT schur<FloatComplexMatrix>::init (const FloatComplexMatrix& a, const std::string& ord, bool calc_unitary) { @@ -462,7 +462,7 @@ } template <> - schur<FloatComplexMatrix> + OCTAVE_API schur<FloatComplexMatrix> rsf2csf<FloatComplexMatrix, FloatMatrix> (const FloatMatrix& s_arg, const FloatMatrix& u_arg) {
--- a/liboctave/numeric/schur.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/schur.h Tue Dec 29 17:51:23 2020 +0100 @@ -95,12 +95,12 @@ T schur_mat; T unitary_mat; - octave_f77_int_type + OCTAVE_API octave_f77_int_type init (const T& a, const std::string& ord, bool calc_unitary); }; template <typename RT, typename AT> - extern schur<RT> + extern OCTAVE_API schur<RT> rsf2csf (const AT& s, const AT& u); } }
--- a/liboctave/numeric/sparse-chol.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-chol.cc Tue Dec 29 17:51:23 2020 +0100 @@ -591,6 +591,7 @@ // different from the default). template <> + OCTAVE_API sparse_chol<SparseComplexMatrix>::sparse_chol (const SparseComplexMatrix& a, octave_idx_type& info) : rep (new sparse_chol<SparseComplexMatrix>::sparse_chol_rep (a, info, @@ -600,14 +601,15 @@ // Instantiations we need. - template class sparse_chol<SparseMatrix>; + template class OCTAVE_API sparse_chol<SparseMatrix>; template class sparse_chol<SparseComplexMatrix>; - template SparseMatrix + template OCTAVE_API SparseMatrix chol2inv<SparseMatrix> (const SparseMatrix& r); - template SparseComplexMatrix + template OCTAVE_API SparseComplexMatrix chol2inv<SparseComplexMatrix> (const SparseComplexMatrix& r); + } }
--- a/liboctave/numeric/sparse-chol.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-chol.h Tue Dec 29 17:51:23 2020 +0100 @@ -45,6 +45,7 @@ template <typename chol_type> class + OCTAVE_API sparse_chol { public: @@ -94,14 +95,9 @@ }; template <typename chol_type> + OCTAVE_API chol_type chol2inv (const chol_type& r); - - // SparseComplexMatrix specialization. - - template <> - sparse_chol<SparseComplexMatrix>::sparse_chol - (const SparseComplexMatrix& a, octave_idx_type& info); } }
--- a/liboctave/numeric/sparse-dmsolve.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-dmsolve.cc Tue Dec 29 17:51:23 2020 +0100 @@ -505,34 +505,34 @@ // Instantiations we need. -template ComplexMatrix +template OCTAVE_API ComplexMatrix dmsolve<ComplexMatrix, SparseComplexMatrix, Matrix> (const SparseComplexMatrix&, const Matrix&, octave_idx_type&); -template SparseComplexMatrix +template OCTAVE_API SparseComplexMatrix dmsolve<SparseComplexMatrix, SparseComplexMatrix, SparseMatrix> (const SparseComplexMatrix&, const SparseMatrix&, octave_idx_type&); -template ComplexMatrix +template OCTAVE_API ComplexMatrix dmsolve<ComplexMatrix, SparseComplexMatrix, ComplexMatrix> (const SparseComplexMatrix&, const ComplexMatrix&, octave_idx_type&); -template SparseComplexMatrix +template OCTAVE_API SparseComplexMatrix dmsolve<SparseComplexMatrix, SparseComplexMatrix, SparseComplexMatrix> (const SparseComplexMatrix&, const SparseComplexMatrix&, octave_idx_type&); -template Matrix +template OCTAVE_API Matrix dmsolve<Matrix, SparseMatrix, Matrix> (const SparseMatrix&, const Matrix&, octave_idx_type&); -template SparseMatrix +template OCTAVE_API SparseMatrix dmsolve<SparseMatrix, SparseMatrix, SparseMatrix> (const SparseMatrix&, const SparseMatrix&, octave_idx_type&); -template ComplexMatrix +template OCTAVE_API ComplexMatrix dmsolve<ComplexMatrix, SparseMatrix, ComplexMatrix> (const SparseMatrix&, const ComplexMatrix&, octave_idx_type&); -template SparseComplexMatrix +template OCTAVE_API SparseComplexMatrix dmsolve<SparseComplexMatrix, SparseMatrix, SparseComplexMatrix> (const SparseMatrix&, const SparseComplexMatrix&, octave_idx_type&);
--- a/liboctave/numeric/sparse-dmsolve.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-dmsolve.h Tue Dec 29 17:51:23 2020 +0100 @@ -29,7 +29,7 @@ #include "octave-config.h" template <typename RT, typename ST, typename T> -RT +OCTAVE_API RT dmsolve (const ST& a, const T& b, octave_idx_type& info); #endif
--- a/liboctave/numeric/sparse-lu.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-lu.cc Tue Dec 29 17:51:23 2020 +0100 @@ -127,28 +127,28 @@ // SparseMatrix Specialization. template <> - inline void + inline OCTAVE_API void umfpack_defaults<double> (double *Control) { UMFPACK_DNAME (defaults) (Control); } template <> - inline void + inline OCTAVE_API void umfpack_free_numeric<double> (void **Numeric) { UMFPACK_DNAME (free_numeric) (Numeric); } template <> - inline void + inline OCTAVE_API void umfpack_free_symbolic<double> (void **Symbolic) { UMFPACK_DNAME (free_symbolic) (Symbolic); } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_get_lunz<double> (octave_idx_type *lnz, octave_idx_type *unz, void *Numeric) { @@ -160,7 +160,7 @@ } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_get_numeric<double> (octave_idx_type *Lp, octave_idx_type *Lj, double *Lx, octave_idx_type *Up, octave_idx_type *Ui, double *Ux, @@ -178,7 +178,7 @@ } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_numeric<double> (const octave_idx_type *Ap, const octave_idx_type *Ai, const double *Ax, void *Symbolic, void **Numeric, @@ -190,7 +190,7 @@ } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_qsymbolic<double> (octave_idx_type n_row, octave_idx_type n_col, const octave_idx_type *Ap, const octave_idx_type *Ai, const double *Ax, @@ -205,21 +205,21 @@ } template <> - inline void + inline OCTAVE_API void umfpack_report_control<double> (const double *Control) { UMFPACK_DNAME (report_control) (Control); } template <> - inline void + inline OCTAVE_API void umfpack_report_info<double> (const double *Control, const double *Info) { UMFPACK_DNAME (report_info) (Control, Info); } template <> - inline void + inline OCTAVE_API void umfpack_report_matrix<double> (octave_idx_type n_row, octave_idx_type n_col, const octave_idx_type *Ap, const octave_idx_type *Ai, const double *Ax, octave_idx_type col_form, @@ -232,14 +232,14 @@ } template <> - inline void + inline OCTAVE_API void umfpack_report_numeric<double> (void *Numeric, const double *Control) { UMFPACK_DNAME (report_numeric) (Numeric, Control); } template <> - inline void + inline OCTAVE_API void umfpack_report_perm<double> (octave_idx_type np, const octave_idx_type *Perm, const double *Control) { @@ -247,14 +247,14 @@ } template <> - inline void + inline OCTAVE_API void umfpack_report_status<double> (double *Control, octave_idx_type status) { UMFPACK_DNAME (report_status) (Control, status); } template <> - inline void + inline OCTAVE_API void umfpack_report_symbolic<double> (void *Symbolic, const double *Control) { UMFPACK_DNAME (report_symbolic) (Symbolic, Control); @@ -263,28 +263,28 @@ // SparseComplexMatrix specialization. template <> - inline void + inline OCTAVE_API void umfpack_defaults<Complex> (double *Control) { UMFPACK_ZNAME (defaults) (Control); } template <> - inline void + inline OCTAVE_API void umfpack_free_numeric<Complex> (void **Numeric) { UMFPACK_ZNAME (free_numeric) (Numeric); } template <> - inline void + inline OCTAVE_API void umfpack_free_symbolic<Complex> (void **Symbolic) { UMFPACK_ZNAME (free_symbolic) (Symbolic); } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_get_lunz<Complex> (octave_idx_type *lnz, octave_idx_type *unz, void *Numeric) { @@ -296,7 +296,7 @@ } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_get_numeric<Complex> (octave_idx_type *Lp, octave_idx_type *Lj, Complex *Lz, octave_idx_type *Up, octave_idx_type *Ui, Complex *Uz, @@ -317,7 +317,7 @@ } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_numeric<Complex> (const octave_idx_type *Ap, const octave_idx_type *Ai, const Complex *Az, void *Symbolic, void **Numeric, @@ -330,7 +330,7 @@ } template <> - inline octave_idx_type + inline OCTAVE_API octave_idx_type umfpack_qsymbolic<Complex> (octave_idx_type n_row, octave_idx_type n_col, const octave_idx_type *Ap, const octave_idx_type *Ai, @@ -346,21 +346,21 @@ } template <> - inline void + inline OCTAVE_API void umfpack_report_control<Complex> (const double *Control) { UMFPACK_ZNAME (report_control) (Control); } template <> - inline void + inline OCTAVE_API void umfpack_report_info<Complex> (const double *Control, const double *Info) { UMFPACK_ZNAME (report_info) (Control, Info); } template <> - inline void + inline OCTAVE_API void umfpack_report_matrix<Complex> (octave_idx_type n_row, octave_idx_type n_col, const octave_idx_type *Ap, const octave_idx_type *Ai, @@ -374,14 +374,14 @@ } template <> - inline void + inline OCTAVE_API void umfpack_report_numeric<Complex> (void *Numeric, const double *Control) { UMFPACK_ZNAME (report_numeric) (Numeric, Control); } template <> - inline void + inline OCTAVE_API void umfpack_report_perm<Complex> (octave_idx_type np, const octave_idx_type *Perm, const double *Control) { @@ -389,14 +389,14 @@ } template <> - inline void + inline OCTAVE_API void umfpack_report_status<Complex> (double *Control, octave_idx_type status) { UMFPACK_ZNAME (report_status) (Control, status); } template <> - inline void + inline OCTAVE_API void umfpack_report_symbolic <Complex> (void *Symbolic, const double *Control) { UMFPACK_ZNAME (report_symbolic) (Symbolic, Control); @@ -981,9 +981,8 @@ } // Instantiations we need. + template class OCTAVE_API sparse_lu<SparseMatrix>; - template class sparse_lu<SparseMatrix>; - - template class sparse_lu<SparseComplexMatrix>; + template class OCTAVE_API sparse_lu<SparseComplexMatrix>; } }
--- a/liboctave/numeric/sparse-lu.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-lu.h Tue Dec 29 17:51:23 2020 +0100 @@ -55,9 +55,11 @@ sparse_lu (void) : Lfact (), Ufact (), Rfact (), cond (0), P (), Q () { } + OCTAVE_API sparse_lu (const lu_type& a, const Matrix& piv_thres = Matrix (), bool scale = false); + OCTAVE_API sparse_lu (const lu_type& a, const ColumnVector& Qinit, const Matrix& piv_thres, bool scale = false, bool FixedQ = false, double droptol = -1.0, @@ -90,19 +92,19 @@ SparseMatrix R (void) const { return Rfact; } - lu_type Y (void) const; + OCTAVE_API lu_type Y (void) const; - SparseMatrix Pc (void) const; + OCTAVE_API SparseMatrix Pc (void) const; - SparseMatrix Pr (void) const; + OCTAVE_API SparseMatrix Pr (void) const; - ColumnVector Pc_vec (void) const; + OCTAVE_API ColumnVector Pc_vec (void) const; - ColumnVector Pr_vec (void) const; + OCTAVE_API ColumnVector Pr_vec (void) const; - PermMatrix Pc_mat (void) const; + OCTAVE_API PermMatrix Pc_mat (void) const; - PermMatrix Pr_mat (void) const; + OCTAVE_API PermMatrix Pr_mat (void) const; const octave_idx_type * row_perm (void) const { return P.fortran_vec (); }
--- a/liboctave/numeric/sparse-qr.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-qr.cc Tue Dec 29 17:51:23 2020 +0100 @@ -173,6 +173,12 @@ #endif } + // Instantiations we need. + + template class OCTAVE_API sparse_qr<SparseMatrix>; + + template class OCTAVE_API sparse_qr<SparseComplexMatrix>; + // Specializations. // Real-valued matrices. @@ -2360,11 +2366,5 @@ SparseComplexMatrix> (a, b, info); } - - // Instantiations we need. - - template class sparse_qr<SparseMatrix>; - - template class sparse_qr<SparseComplexMatrix>; } }
--- a/liboctave/numeric/sparse-qr.h Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/sparse-qr.h Tue Dec 29 17:51:23 2020 +0100 @@ -52,34 +52,34 @@ { public: - sparse_qr (void); + OCTAVE_API sparse_qr (void); - sparse_qr (const SPARSE_T& a, int order = 0); + OCTAVE_API sparse_qr (const SPARSE_T& a, int order = 0); - sparse_qr (const sparse_qr& a); + OCTAVE_API sparse_qr (const sparse_qr& a); - ~sparse_qr (void); + OCTAVE_API ~sparse_qr (void); - sparse_qr& operator = (const sparse_qr& a); + OCTAVE_API sparse_qr& operator = (const sparse_qr& a); - bool ok (void) const; + OCTAVE_API bool ok (void) const; - SPARSE_T V (void) const; + OCTAVE_API SPARSE_T V (void) const; - ColumnVector Pinv (void) const; + OCTAVE_API ColumnVector Pinv (void) const; - ColumnVector P (void) const; + OCTAVE_API ColumnVector P (void) const; - SPARSE_T R (bool econ = false) const; + OCTAVE_API SPARSE_T R (bool econ = false) const; - typename SPARSE_T::dense_matrix_type + OCTAVE_API typename SPARSE_T::dense_matrix_type C (const typename SPARSE_T::dense_matrix_type& b) const; - typename SPARSE_T::dense_matrix_type + OCTAVE_API typename SPARSE_T::dense_matrix_type Q (void) const; template <typename RHS_T, typename RET_T> - static RET_T + static OCTAVE_API RET_T solve (const SPARSE_T& a, const RHS_T& b, octave_idx_type& info); @@ -90,50 +90,50 @@ sparse_qr_rep *rep; template <typename RHS_T, typename RET_T> - RET_T + OCTAVE_API RET_T tall_solve (const RHS_T& b, octave_idx_type& info) const; template <typename RHS_T, typename RET_T> - RET_T + OCTAVE_API RET_T wide_solve (const RHS_T& b, octave_idx_type& info) const; }; // Provide qrsolve for backward compatibility. - extern Matrix + extern OCTAVE_API Matrix qrsolve (const SparseMatrix& a, const MArray<double>& b, octave_idx_type& info); - extern SparseMatrix + extern OCTAVE_API SparseMatrix qrsolve (const SparseMatrix& a, const SparseMatrix& b, octave_idx_type& info); - extern ComplexMatrix + extern OCTAVE_API ComplexMatrix qrsolve (const SparseMatrix& a, const MArray<Complex>& b, octave_idx_type& info); - extern SparseComplexMatrix + extern OCTAVE_API SparseComplexMatrix qrsolve (const SparseMatrix& a, const SparseComplexMatrix& b, octave_idx_type& info); - extern ComplexMatrix + extern OCTAVE_API ComplexMatrix qrsolve (const SparseComplexMatrix& a, const MArray<double>& b, octave_idx_type& info); - extern SparseComplexMatrix + extern OCTAVE_API SparseComplexMatrix qrsolve (const SparseComplexMatrix& a, const SparseMatrix& b, octave_idx_type& info); - extern ComplexMatrix + extern OCTAVE_API ComplexMatrix qrsolve (const SparseComplexMatrix& a, const MArray<Complex>& b, octave_idx_type& info); - extern SparseComplexMatrix + extern OCTAVE_API SparseComplexMatrix qrsolve (const SparseComplexMatrix& a, const SparseComplexMatrix& b, octave_idx_type& info); - typedef sparse_qr<SparseMatrix> SparseQR; - typedef sparse_qr<SparseComplexMatrix> SparseComplexQR; + //typedef sparse_qr<SparseMatrix> SparseQR; + //typedef sparse_qr<SparseComplexMatrix> SparseComplexQR; } }
--- a/liboctave/numeric/svd.cc Tue Dec 29 17:41:39 2020 +0100 +++ b/liboctave/numeric/svd.cc Tue Dec 29 17:51:23 2020 +0100 @@ -90,7 +90,7 @@ // DGESVD template<> - void + OCTAVE_API void svd<Matrix>::gesvd (char& jobu, char& jobv, F77_INT m, F77_INT n, double *tmp_data, F77_INT m1, double *s_vec, double *u, double *vt, F77_INT nrow_vt1, @@ -107,7 +107,7 @@ // SGESVD template<> - void + OCTAVE_API void svd<FloatMatrix>::gesvd (char& jobu, char& jobv, F77_INT m, F77_INT n, float *tmp_data, F77_INT m1, float *s_vec, float *u, float *vt, F77_INT nrow_vt1, @@ -124,7 +124,7 @@ // ZGESVD template<> - void + OCTAVE_API void svd<ComplexMatrix>::gesvd (char& jobu, char& jobv, F77_INT m, F77_INT n, Complex *tmp_data, F77_INT m1, double *s_vec, Complex *u, Complex *vt, F77_INT nrow_vt1, @@ -143,7 +143,7 @@ // CGESVD template<> - void + OCTAVE_API void svd<FloatComplexMatrix>::gesvd (char& jobu, char& jobv, F77_INT m, F77_INT n, FloatComplex *tmp_data, F77_INT m1, float *s_vec, FloatComplex *u, @@ -183,7 +183,7 @@ // DGESDD template<> - void + OCTAVE_API void svd<Matrix>::gesdd (char& jobz, F77_INT m, F77_INT n, double *tmp_data, F77_INT m1, double *s_vec, double *u, double *vt, F77_INT nrow_vt1, std::vector<double>& work, @@ -199,7 +199,7 @@ // SGESDD template<> - void + OCTAVE_API void svd<FloatMatrix>::gesdd (char& jobz, F77_INT m, F77_INT n, float *tmp_data, F77_INT m1, float *s_vec, float *u, float *vt, F77_INT nrow_vt1, std::vector<float>& work, @@ -215,7 +215,7 @@ // ZGESDD template<> - void + OCTAVE_API void svd<ComplexMatrix>::gesdd (char& jobz, F77_INT m, F77_INT n, Complex *tmp_data, F77_INT m1, double *s_vec, Complex *u, Complex *vt, F77_INT nrow_vt1, @@ -244,7 +244,7 @@ // CGESDD template<> - void + OCTAVE_API void svd<FloatComplexMatrix>::gesdd (char& jobz, F77_INT m, F77_INT n, FloatComplex *tmp_data, F77_INT m1, float *s_vec, FloatComplex *u,