diff options
| author | Stephen Montgomery-Smith <stephen@FreeBSD.org> | 2018-05-14 21:01:37 +0000 |
|---|---|---|
| committer | Stephen Montgomery-Smith <stephen@FreeBSD.org> | 2018-05-14 21:01:37 +0000 |
| commit | 95c9562d17db96fd7cf437a15250ff9385c72dda (patch) | |
| tree | 150f59165950ed79b648ef55c64fb74142fad99c /math/octave-forge-linear-algebra/files | |
| parent | Add gtksourceview4 4.0.1. (diff) | |
- Add patches that unbreak it.
- Bump portrevision.
Obtained from: https://sourceforge.net/p/octave/linear-algebra/ci/default/tree/
Diffstat (limited to 'math/octave-forge-linear-algebra/files')
5 files changed, 399 insertions, 0 deletions
diff --git a/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.cc b/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.cc new file mode 100644 index 000000000000..65676f4e525a --- /dev/null +++ b/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.cc @@ -0,0 +1,147 @@ +--- CmplxGSVD.cc.orig 2015-01-24 19:54:11 UTC ++++ CmplxGSVD.cc +@@ -14,13 +14,12 @@ + // You should have received a copy of the GNU General Public License along with + // this program; if not, see <http://www.gnu.org/licenses/>. + +-#ifdef HAVE_CONFIG_H +-#include <config.h> +-#endif ++#include "CmplxGSVD.h" + + #include <iostream> + +-#include "CmplxGSVD.h" ++#include <octave/oct.h> ++ + #include "f77-fcn.h" + #include "lo-error.h" + +@@ -30,6 +29,13 @@ + #include "pager.h" + */ + ++#if defined (OCTAVE_HAVE_F77_INT_TYPE) ++# define TO_F77_INT(x) octave::to_f77_int (x) ++#else ++typedef octave_idx_type F77_INT; ++# define TO_F77_INT(x) (x) ++#endif ++ + extern "C" + { + F77_RET_T +@@ -38,27 +44,27 @@ extern "C" + F77_CONST_CHAR_ARG_DECL, // JOBU (input) CHARACTER*1 + F77_CONST_CHAR_ARG_DECL, // JOBV (input) CHARACTER*1 + F77_CONST_CHAR_ARG_DECL, // JOBQ (input) CHARACTER*1 +- const octave_idx_type&, // M (input) INTEGER +- const octave_idx_type&, // N (input) INTEGER +- const octave_idx_type&, // P (input) INTEGER +- octave_idx_type &, // K (output) INTEGER +- octave_idx_type &, // L (output) INTEGER ++ const F77_INT&, // M (input) INTEGER ++ const F77_INT&, // N (input) INTEGER ++ const F77_INT&, // P (input) INTEGER ++ F77_INT&, // K (output) INTEGER ++ F77_INT&, // L (output) INTEGER + Complex*, // A (input/output) COMPLEX*16 array, dimension (LDA,N) +- const octave_idx_type&, // LDA (input) INTEGER ++ const F77_INT&, // LDA (input) INTEGER + Complex*, // B (input/output) COMPLEX*16 array, dimension (LDB,N) +- const octave_idx_type&, // LDB (input) INTEGER ++ const F77_INT&, // LDB (input) INTEGER + double*, // ALPHA (output) DOUBLE PRECISION array, dimension (N) + double*, // BETA (output) DOUBLE PRECISION array, dimension (N) + Complex*, // U (output) COMPLEX*16 array, dimension (LDU,M) +- const octave_idx_type&, // LDU (input) INTEGER ++ const F77_INT&, // LDU (input) INTEGER + Complex*, // V (output) COMPLEX*16 array, dimension (LDV,P) +- const octave_idx_type&, // LDV (input) INTEGER ++ const F77_INT&, // LDV (input) INTEGER + Complex*, // Q (output) COMPLEX*16 array, dimension (LDQ,N) +- const octave_idx_type&, // LDQ (input) INTEGER ++ const F77_INT&, // LDQ (input) INTEGER + Complex*, // WORK (workspace) COMPLEX*16 array + double*, // RWORK (workspace) DOUBLE PRECISION array +- int*, // IWORK (workspace/output) INTEGER array, dimension (N) +- octave_idx_type& // INFO (output)INTEGER ++ F77_INT*, // IWORK (workspace/output) INTEGER array, dimension (N) ++ F77_INT& // INFO (output)INTEGER + F77_CHAR_ARG_LEN_DECL + F77_CHAR_ARG_LEN_DECL + F77_CHAR_ARG_LEN_DECL +@@ -121,11 +127,11 @@ octave_idx_type + ComplexGSVD::init (const ComplexMatrix& a, const ComplexMatrix& b, + GSVD::type gsvd_type) + { +- octave_idx_type info; ++ F77_INT info; + +- octave_idx_type m = a.rows (); +- octave_idx_type n = a.cols (); +- octave_idx_type p = b.rows (); ++ F77_INT m = TO_F77_INT (a.rows ()); ++ F77_INT n = TO_F77_INT (a.cols ()); ++ F77_INT p = TO_F77_INT (b.rows ()); + + ComplexMatrix atmp = a; + Complex *tmp_dataA = atmp.fortran_vec (); +@@ -133,17 +139,17 @@ ComplexGSVD::init (const ComplexMatrix& + ComplexMatrix btmp = b; + Complex *tmp_dataB = btmp.fortran_vec (); + +- // octave_idx_type min_mn = m < n ? m : n; ++ // F77_INT min_mn = m < n ? m : n; + + char jobu = 'U'; + char jobv = 'V'; + char jobq = 'Q'; + +- octave_idx_type nrow_u = m; +- octave_idx_type nrow_v = p; +- octave_idx_type nrow_q = n; ++ F77_INT nrow_u = m; ++ F77_INT nrow_v = p; ++ F77_INT nrow_q = n; + +- octave_idx_type k, l; ++ F77_INT k, l; + + switch (gsvd_type) + { +@@ -187,7 +193,7 @@ ComplexGSVD::init (const ComplexMatrix& + } + Complex *q = right_sm.fortran_vec (); + +- octave_idx_type lwork = 3*n; ++ F77_INT lwork = 3*n; + lwork = lwork > m ? lwork : m; + lwork = (lwork > p ? lwork : p) + n; + +@@ -195,7 +201,7 @@ ComplexGSVD::init (const ComplexMatrix& + Array<double> alpha (dim_vector (n, 1)); + Array<double> beta (dim_vector (n, 1)); + Array<double> rwork(dim_vector (2*n, 1)); +- Array<int> iwork (dim_vector (n, 1)); ++ Array<F77_INT> iwork (dim_vector (n, 1)); + + F77_XFCN (zggsvd, ZGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1), + F77_CONST_CHAR_ARG2 (&jobv, 1), +@@ -219,13 +225,13 @@ ComplexGSVD::init (const ComplexMatrix& + if (info > 0) { + (*current_liboctave_error_handler) ("zggsvd.f: Jacobi-type procedure failed to converge."); + } else { +- octave_idx_type i, j; ++ F77_INT i, j; + + if (GSVD::std == gsvd_type) { + R.resize(k+l, k+l); +- int astart = n-k-l; ++ F77_INT astart = n-k-l; + if (m - k - l >= 0) { +- int astart = n-k-l; ++ F77_INT astart = n-k-l; + /* + * R is stored in A(1:K+L,N-K-L+1:N) + */ diff --git a/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.h b/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.h new file mode 100644 index 000000000000..1ab712546361 --- /dev/null +++ b/math/octave-forge-linear-algebra/files/patch-CmplxGSVD.h @@ -0,0 +1,11 @@ +--- CmplxGSVD.h.orig 2015-01-24 19:54:11 UTC ++++ CmplxGSVD.h +@@ -19,6 +19,8 @@ + + #include <iostream> + ++#include <octave/oct.h> ++ + #include "dDiagMatrix.h" + #include "CMatrix.h" + #include "dbleGSVD.h" diff --git a/math/octave-forge-linear-algebra/files/patch-Makefile b/math/octave-forge-linear-algebra/files/patch-Makefile new file mode 100644 index 000000000000..9619a1f0b1b6 --- /dev/null +++ b/math/octave-forge-linear-algebra/files/patch-Makefile @@ -0,0 +1,83 @@ +--- Makefile.orig 2015-01-24 19:54:11 UTC ++++ Makefile +@@ -1,66 +1,24 @@ +-sinclude Makeconf +- +-ifndef OCTAVE_FORGE +-MKOCTFILE = mkoctfile +-endif +- +-ifndef LAPACK_LIBS +-LAPACK_LIBS := $(shell $(MKOCTFILE) -p LAPACK_LIBS) +-endif +-ifndef BLAS_LIBS +-BLAS_LIBS := $(shell $(MKOCTFILE) -p BLAS_LIBS) +-endif +-LFLAGS := $(shell $(MKOCTFILE) -p LFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) +-export LFLAGS +- +-DEFINES = -DHAVE_CONFIG_H -Wall +-GSVD_OBJECTS = gsvd.o dbleGSVD.o CmplxGSVD.o +-GSVD_TARGET = gsvd.oct +-GSVD_TEST = gsvd +-GSVD_DEPENDS = gsvd.d dbleGSVD.d CmplxGSVD.d +- +-OBJECTS = $(GSVD_OBJECTS) +-TARGETS = $(GSVD_TARGET) +-DEPENDS = $(GSVD_DEPENDS) +- +-.PHONY: all test clean count +- +-.SUFFIXES: +- +-.PRECIOUS: %.d %.o +- +-all : $(TARGETS) pgmres.oct +- +-$(GSVD_TARGET) : $(GSVD_DEPENDS) $(GSVD_OBJECTS) +- $(MKOCTFILE) $(DEFINES) $(GSVD_OBJECTS) -o $@ ${LAPACK_LIBS} ++MKOCTFILE ?= mkoctfile + +-$(GSVD_TEST) : $(GSVD_TARGET) ++OCT_FILES := gsvd.oct pgmres.oct + +-ifneq (,$(DEPENDS)) +- sinclude $(DEPENDS) +-endif ++GSVD_DEPENDS := dbleGSVD.o CmplxGSVD.o + +-%.d:%.cc +- $(MKOCTFILE) $(DEFINES) -M $< ++LAPACK_LIBS ?= $(shell $(MKOCTFILE) -p LAPACK_LIBS) ++BLAS_LIBS ?= $(shell $(MKOCTFILE) -p BLAS_LIBS) + +-%.o:%.cc +-%.o:%.cc %.d +- $(MKOCTFILE) $(DEFINES) -c $< ++.PHONY: all clean + +-%.o:%.f +- $(MKOCTFILE) $(DEFINES) -c $< +-%.oct:%.o +- $(MKOCTFILE) $(DEFINES) $< -o $@ ++all: $(OCT_FILES) + + %.oct: %.cc +- mkoctfile $(DEFINES) $< -o $@ ${LAPACK_LIBS} ++ $(MKOCTFILE) $^ + +-.phony: test +-test: $(GSVD_TEST) +- for i in $^; do echo "test $$i"; done | octave --silent ++%.o: %.cc %.h ++ $(MKOCTFILE) -c $< + +-clean: +- rm -f $(TARGETS) $(DEPENDS) $(OBJECTS) octave-core ++gsvd.oct: gsvd.cc $(GSVD_DEPENDS) ++ $(MKOCTFILE) -c $< $(LAPACK_LIBS) $(BLAS_LIBS) + +-count: +- wc *{.cc,.h,.f} ++clean: ++ $(RM) *.o *.oct octave-core octave-workspace diff --git a/math/octave-forge-linear-algebra/files/patch-dbleGSVD.cc b/math/octave-forge-linear-algebra/files/patch-dbleGSVD.cc new file mode 100644 index 000000000000..2b258997658f --- /dev/null +++ b/math/octave-forge-linear-algebra/files/patch-dbleGSVD.cc @@ -0,0 +1,147 @@ +--- dbleGSVD.cc.orig 2015-01-24 19:54:11 UTC ++++ dbleGSVD.cc +@@ -14,14 +14,14 @@ + // You should have received a copy of the GNU General Public License along with + // this program; if not, see <http://www.gnu.org/licenses/>. + +-#ifdef HAVE_CONFIG_H +-#include <config.h> +-#endif ++#include "dbleGSVD.h" + + #include <iostream> + +-#include "dbleGSVD.h" ++#include <octave/oct.h> ++ + #include "f77-fcn.h" ++#include "lo-error.h" + + /* + uncomment those lines to monitor k and l +@@ -29,6 +29,13 @@ + #include "pager.h" + */ + ++#if defined (OCTAVE_HAVE_F77_INT_TYPE) ++# define TO_F77_INT(x) octave::to_f77_int (x) ++#else ++# define TO_F77_INT(x) (x) ++typedef octave_idx_type F77_INT; ++#endif ++ + extern "C" + { + F77_RET_T +@@ -37,26 +44,26 @@ extern "C" + F77_CONST_CHAR_ARG_DECL, // JOBU (input) CHARACTER*1 + F77_CONST_CHAR_ARG_DECL, // JOBV (input) CHARACTER*1 + F77_CONST_CHAR_ARG_DECL, // JOBQ (input) CHARACTER*1 +- const octave_idx_type&, // M (input) INTEGER +- const octave_idx_type&, // N (input) INTEGER +- const octave_idx_type&, // P (input) INTEGER +- octave_idx_type &, // K (output) INTEGER +- octave_idx_type &, // L (output) INTEGER ++ const F77_INT&, // M (input) INTEGER ++ const F77_INT&, // N (input) INTEGER ++ const F77_INT&, // P (input) INTEGER ++ F77_INT &, // K (output) INTEGER ++ F77_INT &, // L (output) INTEGER + double*, // A (input/output) DOUBLE PRECISION array, dimension (LDA,N) +- const octave_idx_type&, // LDA (input) INTEGER ++ const F77_INT&, // LDA (input) INTEGER + double*, // B (input/output) DOUBLE PRECISION array, dimension (LDB,N) +- const octave_idx_type&, // LDB (input) INTEGER ++ const F77_INT&, // LDB (input) INTEGER + double*, // ALPHA (output) DOUBLE PRECISION array, dimension (N) + double*, // BETA (output) DOUBLE PRECISION array, dimension (N) + double*, // U (output) DOUBLE PRECISION array, dimension (LDU,M) +- const octave_idx_type&, // LDU (input) INTEGER ++ const F77_INT&, // LDU (input) INTEGER + double*, // V (output) DOUBLE PRECISION array, dimension (LDV,P) +- const octave_idx_type&, // LDV (input) INTEGER ++ const F77_INT&, // LDV (input) INTEGER + double*, // Q (output) DOUBLE PRECISION array, dimension (LDQ,N) +- const octave_idx_type&, // LDQ (input) INTEGER ++ const F77_INT&, // LDQ (input) INTEGER + double*, // WORK (workspace) DOUBLE PRECISION array +- int*, // IWORK (workspace/output) INTEGER array, dimension (N) +- octave_idx_type& // INFO (output)INTEGER ++ F77_INT*, // IWORK (workspace/output) INTEGER array, dimension (N) ++ F77_INT& // INFO (output)INTEGER + F77_CHAR_ARG_LEN_DECL + F77_CHAR_ARG_LEN_DECL + F77_CHAR_ARG_LEN_DECL +@@ -117,11 +124,11 @@ GSVD::R_matrix (void) const + octave_idx_type + GSVD::init (const Matrix& a, const Matrix& b, GSVD::type gsvd_type) + { +- octave_idx_type info; ++ F77_INT info; + +- octave_idx_type m = a.rows (); +- octave_idx_type n = a.cols (); +- octave_idx_type p = b.rows (); ++ F77_INT m = TO_F77_INT (a.rows ()); ++ F77_INT n = TO_F77_INT (a.cols ()); ++ F77_INT p = TO_F77_INT (b.rows ()); + + Matrix atmp = a; + double *tmp_dataA = atmp.fortran_vec (); +@@ -129,17 +136,17 @@ GSVD::init (const Matrix& a, const Matri + Matrix btmp = b; + double *tmp_dataB = btmp.fortran_vec (); + +- // octave_idx_type min_mn = m < n ? m : n; ++ // F77_INT min_mn = m < n ? m : n; + + char jobu = 'U'; + char jobv = 'V'; + char jobq = 'Q'; + +- octave_idx_type nrow_u = m; +- octave_idx_type nrow_v = p; +- octave_idx_type nrow_q = n; ++ F77_INT nrow_u = m; ++ F77_INT nrow_v = p; ++ F77_INT nrow_q = n; + +- octave_idx_type k, l; ++ F77_INT k, l; + + switch (gsvd_type) + { +@@ -183,14 +190,14 @@ GSVD::init (const Matrix& a, const Matri + } + double *q = right_sm.fortran_vec (); + +- octave_idx_type lwork = 3*n; ++ F77_INT lwork = 3*n; + lwork = lwork > m ? lwork : m; + lwork = (lwork > p ? lwork : p) + n; + + Array<double> work (dim_vector (lwork, 1)); + Array<double> alpha (dim_vector (n, 1)); + Array<double> beta (dim_vector (n, 1)); +- Array<int> iwork (dim_vector (n, 1)); ++ Array<F77_INT> iwork (dim_vector (n, 1)); + + F77_XFCN (dggsvd, DGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1), + F77_CONST_CHAR_ARG2 (&jobv, 1), +@@ -213,13 +220,13 @@ GSVD::init (const Matrix& a, const Matri + if (info > 0) { + (*current_liboctave_error_handler) ("dggsvd.f: Jacobi-type procedure failed to converge."); + } else { +- octave_idx_type i, j; ++ F77_INT i, j; + + if (GSVD::std == gsvd_type) { + R.resize(k+l, k+l); +- int astart = n-k-l; ++ F77_INT astart = n-k-l; + if (m - k - l >= 0) { +- int astart = n-k-l; ++ F77_INT astart = n-k-l; + /* + * R is stored in A(1:K+L,N-K-L+1:N) + */ diff --git a/math/octave-forge-linear-algebra/files/patch-dbleGSVD.h b/math/octave-forge-linear-algebra/files/patch-dbleGSVD.h new file mode 100644 index 000000000000..efadfbc18554 --- /dev/null +++ b/math/octave-forge-linear-algebra/files/patch-dbleGSVD.h @@ -0,0 +1,11 @@ +--- dbleGSVD.h.orig 2015-01-24 19:54:11 UTC ++++ dbleGSVD.h +@@ -19,6 +19,8 @@ + + #include <iostream> + ++#include <octave/oct.h> ++ + #include "dDiagMatrix.h" + #include "dMatrix.h" + |
