Mercurial > mxe-octave
comparison src/of-sparsersb-1-fixes.patch @ 4427:2a53600c749c
of-sparsersb: enable buildability in dev octave
* src/of-sparsersb-1-fixes.patch: updated patch
* src/of-sparsersb.mk: call autogen.sh before build
author | John D |
---|---|
date | Fri, 21 Jul 2017 15:06:37 -0400 |
parents | 54b1b8a285e6 |
children |
comparison
equal
deleted
inserted
replaced
4426:342cc3ee5e4b | 4427:2a53600c749c |
---|---|
8 - errval = rsb_mtx_get_coo(mtxAp, VA, (rsb_coo_idx_t *)IA, (rsb_coo_idx_ t*)JA, flags ); | 8 - errval = rsb_mtx_get_coo(mtxAp, VA, (rsb_coo_idx_t *)IA, (rsb_coo_idx_ t*)JA, flags ); |
9 + errval = rsb_mtx_get_coo(mtxAp, VA, (rsb_coo_idx_t *)IA, (rsb_coo_idx_t*)JA, flags ); | 9 + errval = rsb_mtx_get_coo(mtxAp, VA, (rsb_coo_idx_t *)IA, (rsb_coo_idx_t*)JA, flags ); |
10 rsb_nnz_idx_t nnzA = 0; | 10 rsb_nnz_idx_t nnzA = 0; |
11 rsb_mtx_get_info(mtxAp,RSB_MIF_MATRIX_NNZ__TO__RSB_NNZ_INDEX_T,&nnzA); // FIXME: make this a member and use nnz() | 11 rsb_mtx_get_info(mtxAp,RSB_MIF_MATRIX_NNZ__TO__RSB_NNZ_INDEX_T,&nnzA); // FIXME: make this a member and use nnz() |
12 rsboi_ri2oi((rsb_coo_idx_t *)IA,nnzA); | 12 rsboi_ri2oi((rsb_coo_idx_t *)IA,nnzA); |
13 diff -r e6017808f88d src/configure.ac | |
14 --- a/src/configure.ac Fri Jul 21 12:04:41 2017 -0400 | |
15 +++ b/src/configure.ac Fri Jul 21 13:25:48 2017 -0400 | |
16 @@ -107,11 +107,7 @@ | |
17 fi | |
18 fi | |
19 | |
20 -if test -x `which $OCTAVE-cli` ; then | |
21 - OCTAVE_CLI="$OCTAVE-cli"; | |
22 -else | |
23 - OCTAVE_CLI="$OCTAVE"; | |
24 -fi | |
25 +OCTAVE_CLI="$OCTAVE --no-gui --no-window-system"; | |
26 | |
27 SPARSERSB_USE_64BIT_IDX=`$OCTAVE_CLI --no-line-editing -qf --eval 'printf ("%i", sizemax() > intmax ("int32"))'` | |
28 if [test x"$SPARSERSB_USE_64BIT_IDX" = x"1" ]; then | |
29 diff -r 105149bc4206 src/Makeconf.in | |
30 --- a/src/Makeconf.in Fri Jul 21 13:47:46 2017 -0400 | |
31 +++ b/src/Makeconf.in Fri Jul 21 14:52:25 2017 -0400 | |
32 @@ -4,3 +4,4 @@ | |
33 SPARSERSB_CXXFLAGS = @SPARSERSB_CXXFLAGS@ | |
34 SPARSERSB_LDFLAGS = @SPARSERSB_LDFLAGS@ | |
35 SPARSERSB_CXX11= @SPARSERSB_CXX11@ | |
36 +OCTAVE_FUNC_DEFINES = @HAVE_OCTAVE_VALUE_ISCOMPLEX@ | |
37 diff -r 105149bc4206 src/Makefile | |
38 --- a/src/Makefile Fri Jul 21 13:47:46 2017 -0400 | |
39 +++ b/src/Makefile Fri Jul 21 14:52:25 2017 -0400 | |
40 @@ -1,7 +1,7 @@ | |
41 sinclude Makeconf | |
42 # Makeconf is created by the configure script. | |
43 # You can also not use it but set explicitly the following: | |
44 -CXXFLAGS=$(SPARSERSB_CXXFLAGS) | |
45 +CXXFLAGS=$(SPARSERSB_CXXFLAGS) $(OCTAVE_FUNC_DEFINES) | |
46 LFLAGS=$(shell $(MKOCTFILE) -p LFLAGS) $(SPARSERSB_LDFLAGS) | |
47 CXXFLAGS_CXX11=$(SPARSERSB_CXX11) | |
48 | |
49 diff -r 105149bc4206 src/configure.ac | |
50 --- a/src/configure.ac Fri Jul 21 13:47:46 2017 -0400 | |
51 +++ b/src/configure.ac Fri Jul 21 14:52:25 2017 -0400 | |
52 @@ -154,6 +154,40 @@ | |
53 AC_MSG_ERROR([$PACKAGE_NAME requires librsb library]) | |
54 fi | |
55 | |
56 +# check for octave functions | |
57 +save_CXX="$CXX" | |
58 +save_CXXFLAGS="$CXXFLAGS" | |
59 +CXX=`${MKOCTFILE} -p CXX` | |
60 +CXXFLAGS="$CXXFLAGS -I`$MKOCTFILE -p OCTINCLUDEDIR`" | |
61 + | |
62 +# need to use interpreter->get_load_path in dev version of octave, | |
63 +# prior to that methods of load_path were static | |
64 +AC_CACHE_CHECK( | |
65 + [for octave_value function iscomplex], | |
66 + [octave_value_cv_iscomplex], | |
67 + [AC_COMPILE_IFELSE( | |
68 + [AC_LANG_PROGRAM([ | |
69 + #include <oct.h> | |
70 + #include <octave.h> | |
71 + ], | |
72 + [ | |
73 + octave_value().iscomplex(); | |
74 + ])], | |
75 + [octave_value_cv_iscomplex=yes], | |
76 + [octave_value_cv_iscomplex=no]) | |
77 + ]) | |
78 +if test "$octave_value_cv_iscomplex" = "yes" ; then | |
79 + HAVE_OCTAVE_VALUE_ISCOMPLEX=-DHAVE_OCTAVE_VALUE_ISCOMPLEX | |
80 +else | |
81 + HAVE_OCTAVE_VALUE_ISCOMPLEX= | |
82 +fi | |
83 +AC_SUBST(HAVE_OCTAVE_VALUE_ISCOMPLEX) | |
84 + | |
85 +CC=$save_CXX | |
86 +CXXFLAGS=$save_CXXFLAGS | |
87 + | |
88 + | |
89 + | |
90 AC_SUBST(OCTAVE) | |
91 AC_SUBST(TARGETS) | |
92 AC_SUBST(SPARSERSB_CXXFLAGS) | |
93 @@ -163,6 +197,7 @@ | |
94 AC_CONFIG_FILES([Makeconf]) | |
95 AC_OUTPUT | |
96 | |
97 + | |
98 AC_MSG_NOTICE([ | |
99 | |
100 $PACKAGE_NAME is configured with: | |
101 diff -r 105149bc4206 src/sparsersb.cc | |
102 --- a/src/sparsersb.cc Fri Jul 21 13:47:46 2017 -0400 | |
103 +++ b/src/sparsersb.cc Fri Jul 21 14:52:25 2017 -0400 | |
104 @@ -177,7 +177,11 @@ | |
105 | |
106 #ifdef RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX | |
107 #define RSBOI_WANT_DOUBLE_COMPLEX 1 | |
108 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
109 +#define ORSB_RSB_TYPE_FLAG(OBJ) (((OBJ).iscomplex())?RSB_NUMERICAL_TYPE_DOUBLE:RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX) | |
110 +#else | |
111 #define ORSB_RSB_TYPE_FLAG(OBJ) (((OBJ).is_complex_type())?RSB_NUMERICAL_TYPE_DOUBLE:RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX) | |
112 +#endif | |
113 #else | |
114 #define RSBOI_WANT_DOUBLE_COMPLEX 0 | |
115 #define ORSB_RSB_TYPE_FLAG(OBJ) RSB_NUMERICAL_TYPE_DOUBLE | |
116 @@ -228,7 +232,11 @@ | |
117 } | |
118 #endif | |
119 #if RSBOI_WANT_DOUBLE_COMPLEX | |
120 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
121 +#define RSBOI_BINOP_PREVAILING_TYPE(V1,V2) (((V1).iscomplex()||(V2).iscomplex())?RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX:RSB_NUMERICAL_TYPE_DOUBLE) | |
122 +#else | |
123 #define RSBOI_BINOP_PREVAILING_TYPE(V1,V2) (((V1).is_complex_type()||(V2).is_complex_type())?RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX:RSB_NUMERICAL_TYPE_DOUBLE) | |
124 +#endif | |
125 #else | |
126 #define RSBOI_BINOP_PREVAILING_TYPE(V1,V2) RSBOI_TYPECODE | |
127 #endif | |
128 @@ -863,7 +871,11 @@ | |
129 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 */ | |
130 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 */ | |
131 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 */ | |
132 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
133 + bool iscomplex (void) const { RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG); return !is_real_type(); } | |
134 +#else | |
135 bool is_complex_type (void) const { RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG); return !is_real_type(); } | |
136 +#endif | |
137 bool is_bool_type (void) const { return false; } | |
138 bool is_integer_type (void) const { return false; } | |
139 bool is_square (void) const { return this->rows()==this->cols(); } | |
140 @@ -1534,7 +1546,11 @@ | |
141 rsb_err_t errval = RSB_ERR_NO_ERROR; | |
142 RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG); | |
143 | |
144 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
145 + if(v1.iscomplex()) | |
146 +#else | |
147 if(v1.is_complex_type()) | |
148 +#endif | |
149 { | |
150 ComplexMatrix retval = v2.complex_matrix_value(); | |
151 octave_idx_type b_nc = retval.cols (); | |
152 @@ -1640,7 +1656,11 @@ | |
153 if(v1.is__triangular()) | |
154 return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_N); | |
155 | |
156 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
157 + if(v1.iscomplex() || v2.iscomplex()) | |
158 +#else | |
159 if(v1.is_complex_type() || v2.is_complex_type()) | |
160 +#endif | |
161 return (v1.sparse_complex_matrix_value()).solve(v2.sparse_complex_matrix_value()); | |
162 else | |
163 return (v1.sparse_matrix_value()).solve(v2.matrix_value()); | |
164 @@ -1655,7 +1675,11 @@ | |
165 if(v1.is__triangular()) | |
166 return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_T); | |
167 | |
168 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
169 + if(v1.iscomplex() || v2.iscomplex()) | |
170 +#else | |
171 if(v1.is_complex_type() || v2.is_complex_type()) | |
172 +#endif | |
173 return (v1.sparse_complex_matrix_value().transpose()).solve(v2.sparse_complex_matrix_value()); | |
174 else | |
175 return (v1.sparse_matrix_value().transpose()).solve(v2.matrix_value()); | |
176 @@ -1671,7 +1695,11 @@ | |
177 if(v1.is__triangular()) | |
178 return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_N); | |
179 | |
180 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
181 + if(v1.iscomplex() || v2.iscomplex()) | |
182 +#else | |
183 if(v1.is_complex_type() || v2.is_complex_type()) | |
184 +#endif | |
185 return (v1.sparse_complex_matrix_value()).solve(v2.sparse_complex_matrix_value()); | |
186 else | |
187 return (v1.sparse_matrix_value()).solve(v2.matrix_value()); | |
188 @@ -1685,7 +1713,11 @@ | |
189 if(v1.is__triangular()) | |
190 return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_T); | |
191 | |
192 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
193 + if(v1.iscomplex() || v2.iscomplex()) | |
194 +#else | |
195 if(v1.is_complex_type() || v2.is_complex_type()) | |
196 +#endif | |
197 return (v1.sparse_complex_matrix_value().transpose()).solve(v2.sparse_complex_matrix_value()); | |
198 else | |
199 return (v1.sparse_matrix_value().transpose()).solve(v2.matrix_value()); | |
200 @@ -2199,8 +2231,13 @@ | |
201 int nargin = args.length (); | |
202 octave_value_list retval; | |
203 octave_sparsersb_mtx*osmp = RSBOI_NULL; | |
204 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
205 + bool ic0 = nargin>0?(args(0).iscomplex()):false; | |
206 + bool ic3 = nargin>2?(args(2).iscomplex()):false; | |
207 +#else | |
208 bool ic0 = nargin>0?(args(0).is_complex_type()):false; | |
209 bool ic3 = nargin>2?(args(2).is_complex_type()):false; | |
210 +#endif | |
211 bool isr = (nargin>0 && args(0).type_name()==RSB_OI_TYPEINFO_STRING); | |
212 | |
213 RSBOI_DEBUG_NOTICE("in sparsersb()\n"); | |
214 @@ -2522,7 +2559,11 @@ | |
215 if(nargout) retval.append(osmp->cols()),--nargout; | |
216 if(nargout) retval.append(osmp->nnz()),--nargout; | |
217 if(nargout) retval.append(osmp->get_info_string()),--nargout; | |
218 +#ifdef HAVE_OCTAVE_VALUE_ISCOMPLEX | |
219 + if(nargout) retval.append((!osmp->iscomplex())?"real":"complex"),--nargout; | |
220 +#else | |
221 if(nargout) retval.append((!osmp->is_complex_type())?"real":"complex"),--nargout; | |
222 +#endif | |
223 if(nargout) retval.append(osmp->get_symmetry()),--nargout; | |
224 } | |
225 } |