Mercurial > mxe-octave
view src/of-sparsersb-1-fixes.patch @ 4570:ddd228f155af
openssl: update to v1.0.2m
* src/openssl-1-fixes.patch: update from mxe.cc
* src/openssl.mk: update version, checksum
* src/mingw-openssl-3-libdeps.patch: removed file
* dist-files.mk: remove ref to mingw-openssl-3-libdeps.patch
author | John D |
---|---|
date | Tue, 05 Dec 2017 07:53:05 -0500 |
parents | 2a53600c749c |
children |
line wrap: on
line source
diff -ur sparsersb-1.0.5.orig/src/sparsersb.cc sparsersb-1.0.5/src/sparsersb.cc --- sparsersb-1.0.5.orig/src/sparsersb.cc 2017-04-08 17:49:45.120506400 -0400 +++ sparsersb-1.0.5/src/sparsersb.cc 2017-04-08 17:50:04.244313729 -0400 @@ -311,7 +311,7 @@ // assumes tacitly that rsboi_idx_overflow(IA[i],JA[i])==false for i in 0..nnzA-1. rsb_err_t errval = RSB_ERR_NO_ERROR; - errval = rsb_mtx_get_coo(mtxAp, VA, (rsb_coo_idx_t *)IA, (rsb_coo_idx_ t*)JA, flags ); + errval = rsb_mtx_get_coo(mtxAp, VA, (rsb_coo_idx_t *)IA, (rsb_coo_idx_t*)JA, flags ); rsb_nnz_idx_t nnzA = 0; rsb_mtx_get_info(mtxAp,RSB_MIF_MATRIX_NNZ__TO__RSB_NNZ_INDEX_T,&nnzA); // FIXME: make this a member and use nnz() rsboi_ri2oi((rsb_coo_idx_t *)IA,nnzA); diff -r e6017808f88d src/configure.ac --- a/src/configure.ac Fri Jul 21 12:04:41 2017 -0400 +++ b/src/configure.ac Fri Jul 21 13:25:48 2017 -0400 @@ -107,11 +107,7 @@ fi fi -if test -x `which $OCTAVE-cli` ; then - OCTAVE_CLI="$OCTAVE-cli"; -else - OCTAVE_CLI="$OCTAVE"; -fi +OCTAVE_CLI="$OCTAVE --no-gui --no-window-system"; SPARSERSB_USE_64BIT_IDX=`$OCTAVE_CLI --no-line-editing -qf --eval 'printf ("%i", sizemax() > intmax ("int32"))'` if [test x"$SPARSERSB_USE_64BIT_IDX" = x"1" ]; then diff -r 105149bc4206 src/Makeconf.in --- a/src/Makeconf.in Fri Jul 21 13:47:46 2017 -0400 +++ b/src/Makeconf.in Fri Jul 21 14:52:25 2017 -0400 @@ -4,3 +4,4 @@ SPARSERSB_CXXFLAGS = @SPARSERSB_CXXFLAGS@ SPARSERSB_LDFLAGS = @SPARSERSB_LDFLAGS@ SPARSERSB_CXX11= @SPARSERSB_CXX11@ +OCTAVE_FUNC_DEFINES = @HAVE_OCTAVE_VALUE_ISCOMPLEX@ diff -r 105149bc4206 src/Makefile --- a/src/Makefile Fri Jul 21 13:47:46 2017 -0400 +++ b/src/Makefile Fri Jul 21 14:52:25 2017 -0400 @@ -1,7 +1,7 @@ sinclude Makeconf # Makeconf is created by the configure script. # You can also not use it but set explicitly the following: -CXXFLAGS=$(SPARSERSB_CXXFLAGS) +CXXFLAGS=$(SPARSERSB_CXXFLAGS) $(OCTAVE_FUNC_DEFINES) LFLAGS=$(shell $(MKOCTFILE) -p LFLAGS) $(SPARSERSB_LDFLAGS) CXXFLAGS_CXX11=$(SPARSERSB_CXX11) diff -r 105149bc4206 src/configure.ac --- a/src/configure.ac Fri Jul 21 13:47:46 2017 -0400 +++ b/src/configure.ac Fri Jul 21 14:52:25 2017 -0400 @@ -154,6 +154,40 @@ AC_MSG_ERROR([$PACKAGE_NAME requires librsb library]) fi +# check for octave functions +save_CXX="$CXX" +save_CXXFLAGS="$CXXFLAGS" +CXX=`${MKOCTFILE} -p CXX` +CXXFLAGS="$CXXFLAGS -I`$MKOCTFILE -p OCTINCLUDEDIR`" + +# need to use interpreter->get_load_path in dev version of octave, +# prior to that methods of load_path were static +AC_CACHE_CHECK( + [for octave_value function iscomplex], + [octave_value_cv_iscomplex], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([ + #include <oct.h> + #include <octave.h> + ], + [ + octave_value().iscomplex(); + ])], + [octave_value_cv_iscomplex=yes], + [octave_value_cv_iscomplex=no]) + ]) +if test "$octave_value_cv_iscomplex" = "yes" ; then + HAVE_OCTAVE_VALUE_ISCOMPLEX=-DHAVE_OCTAVE_VALUE_ISCOMPLEX +else + HAVE_OCTAVE_VALUE_ISCOMPLEX= +fi +AC_SUBST(HAVE_OCTAVE_VALUE_ISCOMPLEX) + +CC=$save_CXX +CXXFLAGS=$save_CXXFLAGS + + + AC_SUBST(OCTAVE) AC_SUBST(TARGETS) AC_SUBST(SPARSERSB_CXXFLAGS) @@ -163,6 +197,7 @@ AC_CONFIG_FILES([Makeconf]) AC_OUTPUT + AC_MSG_NOTICE([ $PACKAGE_NAME is configured with: diff -r 105149bc4206 src/sparsersb.cc --- a/src/sparsersb.cc Fri Jul 21 13:47:46 2017 -0400 +++ b/src/sparsersb.cc Fri Jul 21 14:52:25 2017 -0400 @@ -177,7 +177,11 @@ #ifdef RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX #define RSBOI_WANT_DOUBLE_COMPLEX 1 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX +#define ORSB_RSB_TYPE_FLAG(OBJ) (((OBJ).iscomplex())?RSB_NUMERICAL_TYPE_DOUBLE:RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX) +#else #define ORSB_RSB_TYPE_FLAG(OBJ) (((OBJ).is_complex_type())?RSB_NUMERICAL_TYPE_DOUBLE:RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX) +#endif #else #define RSBOI_WANT_DOUBLE_COMPLEX 0 #define ORSB_RSB_TYPE_FLAG(OBJ) RSB_NUMERICAL_TYPE_DOUBLE @@ -228,7 +232,11 @@ } #endif #if RSBOI_WANT_DOUBLE_COMPLEX +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX +#define RSBOI_BINOP_PREVAILING_TYPE(V1,V2) (((V1).iscomplex()||(V2).iscomplex())?RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX:RSB_NUMERICAL_TYPE_DOUBLE) +#else #define RSBOI_BINOP_PREVAILING_TYPE(V1,V2) (((V1).is_complex_type()||(V2).is_complex_type())?RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX:RSB_NUMERICAL_TYPE_DOUBLE) +#endif #else #define RSBOI_BINOP_PREVAILING_TYPE(V1,V2) RSBOI_TYPECODE #endif @@ -863,7 +871,11 @@ bool is_diagonal (void) const { RSBOI_0_EMCHECK(this->mtxAp); RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);return RSB_DO_FLAG_HAS(this->rsbflags(),RSB_FLAG_DIAGONAL)?true:false; }/* FIXME: new: not sure whether this is ever called */ bool is_lower_triangular (void) const { RSBOI_0_EMCHECK(this->mtxAp); RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);return RSB_DO_FLAG_HAS(this->rsbflags(),RSB_FLAG_LOWER_TRIANGULAR)?true:false; }/* FIXME: new: not sure whether this is ever called */ bool is_upper_triangular (void) const { RSBOI_0_EMCHECK(this->mtxAp); RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);return RSB_DO_FLAG_HAS(this->rsbflags(),RSB_FLAG_UPPER_TRIANGULAR)?true:false; }/* FIXME: new: not sure whether this is ever called */ +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + bool iscomplex (void) const { RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG); return !is_real_type(); } +#else bool is_complex_type (void) const { RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG); return !is_real_type(); } +#endif bool is_bool_type (void) const { return false; } bool is_integer_type (void) const { return false; } bool is_square (void) const { return this->rows()==this->cols(); } @@ -1534,7 +1546,11 @@ rsb_err_t errval = RSB_ERR_NO_ERROR; RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG); +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + if(v1.iscomplex()) +#else if(v1.is_complex_type()) +#endif { ComplexMatrix retval = v2.complex_matrix_value(); octave_idx_type b_nc = retval.cols (); @@ -1640,7 +1656,11 @@ if(v1.is__triangular()) return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_N); +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + if(v1.iscomplex() || v2.iscomplex()) +#else if(v1.is_complex_type() || v2.is_complex_type()) +#endif return (v1.sparse_complex_matrix_value()).solve(v2.sparse_complex_matrix_value()); else return (v1.sparse_matrix_value()).solve(v2.matrix_value()); @@ -1655,7 +1675,11 @@ if(v1.is__triangular()) return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_T); +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + if(v1.iscomplex() || v2.iscomplex()) +#else if(v1.is_complex_type() || v2.is_complex_type()) +#endif return (v1.sparse_complex_matrix_value().transpose()).solve(v2.sparse_complex_matrix_value()); else return (v1.sparse_matrix_value().transpose()).solve(v2.matrix_value()); @@ -1671,7 +1695,11 @@ if(v1.is__triangular()) return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_N); +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + if(v1.iscomplex() || v2.iscomplex()) +#else if(v1.is_complex_type() || v2.is_complex_type()) +#endif return (v1.sparse_complex_matrix_value()).solve(v2.sparse_complex_matrix_value()); else return (v1.sparse_matrix_value()).solve(v2.matrix_value()); @@ -1685,7 +1713,11 @@ if(v1.is__triangular()) return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_T); +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + if(v1.iscomplex() || v2.iscomplex()) +#else if(v1.is_complex_type() || v2.is_complex_type()) +#endif return (v1.sparse_complex_matrix_value().transpose()).solve(v2.sparse_complex_matrix_value()); else return (v1.sparse_matrix_value().transpose()).solve(v2.matrix_value()); @@ -2199,8 +2231,13 @@ int nargin = args.length (); octave_value_list retval; octave_sparsersb_mtx*osmp = RSBOI_NULL; +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + bool ic0 = nargin>0?(args(0).iscomplex()):false; + bool ic3 = nargin>2?(args(2).iscomplex()):false; +#else bool ic0 = nargin>0?(args(0).is_complex_type()):false; bool ic3 = nargin>2?(args(2).is_complex_type()):false; +#endif bool isr = (nargin>0 && args(0).type_name()==RSB_OI_TYPEINFO_STRING); RSBOI_DEBUG_NOTICE("in sparsersb()\n"); @@ -2522,7 +2559,11 @@ if(nargout) retval.append(osmp->cols()),--nargout; if(nargout) retval.append(osmp->nnz()),--nargout; if(nargout) retval.append(osmp->get_info_string()),--nargout; +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX + if(nargout) retval.append((!osmp->iscomplex())?"real":"complex"),--nargout; +#else if(nargout) retval.append((!osmp->is_complex_type())?"real":"complex"),--nargout; +#endif if(nargout) retval.append(osmp->get_symmetry()),--nargout; } }