# HG changeset patch # User jwe # Date 1127146076 0 # Node ID ec44bd0917fe6f9d594d0448b9b93611fa94d337 # Parent a921c9c17ba5aa572642d2b917d39cc950b02116 [project @ 2005-09-19 16:07:56 by jwe] diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -3,6 +3,8 @@ * oct-env.cc (octave_env::do_get_home_directory): Also check HOMEDRIVE under mingw. + * Makefile.in (LINK_DEPS): Include UFsparse libraries. + 2005-09-16 John W. Eaton * oct-syscalls.cc: Include lo-utils.h here. diff --git a/liboctave/Makefile.in b/liboctave/Makefile.in --- a/liboctave/Makefile.in +++ b/liboctave/Makefile.in @@ -20,8 +20,8 @@ LINK_DEPS = \ -L../libcruft -L. $(RLD_FLAG) \ - $(LIBCRUFT) $(UMFPACK_LIBS) $(BLAS_LIBS) $(FFTW_LIBS) $(LIBREADLINE) \ - $(LIBGLOB) $(LIBS) $(FLIBS) + $(LIBCRUFT) $(UMFPACK_LIBS) $(AMD_LIBS) $(BLAS_LIBS) $(FFTW_LIBS) \ + $(LIBREADLINE) $(LIBGLOB) $(LIBS) $(FLIBS) MATRIX_INC := Array.h Array2.h Array3.h ArrayN.h DiagArray2.h \ Array-flags.h Array-util.h ArrayN-idx.h MArray-defs.h \ diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2005-09-19 David Bateman + + * Makefile.in (OCT_LINK_DEPS): Include UFsparse libraries. + + * DLD_FUNCTIONS/__glpk__.cc (F__glpk__): Replace isinf with + xisinf. Allow sparse matrices as second argument. + + * syscalls.cc: Typos. + * sysdep.cc: Typos. + 2005-09-16 John W. Eaton * syscalls.cc (Fwaitpid): Doc fix. Expect WNOHANG, WUNTRACED, diff --git a/src/DLD-FUNCTIONS/__glpk__.cc b/src/DLD-FUNCTIONS/__glpk__.cc --- a/src/DLD-FUNCTIONS/__glpk__.cc +++ b/src/DLD-FUNCTIONS/__glpk__.cc @@ -442,69 +442,76 @@ } double *c = C.fortran_vec (); + Array rn; + Array cn; + ColumnVector a; + int mrowsA; + volatile int nz = 0; //-- 2nd Input. A matrix containing the constraints coefficients. // If matrix A is NOT a sparse matrix - // if(!mxIsSparse(A_IN)){ - Matrix A (args(1).matrix_value ()); // get the matrix + if( args(1).class_name () != "sparse") + { + Matrix A (args(1).matrix_value ()); // get the matrix - if (error_state) - { - error ("__glpk__: invalid value of A"); - return retval; - } + if (error_state) + { + error ("__glpk__: invalid value of A"); + return retval; + } - int mrowsA = A.rows (); - Array rn (mrowsA*mrowsc+1); - Array cn (mrowsA*mrowsc+1); - ColumnVector a (mrowsA*mrowsc+1, 0.0); + mrowsA = A.rows (); + rn.resize (mrowsA*mrowsc+1); + cn.resize (mrowsA*mrowsc+1); + a.resize (mrowsA*mrowsc+1, 0.0); - volatile int nz = 0; - for (int i = 0; i < mrowsA; i++) - { - for (int j = 0; j < mrowsc; j++) + for (int i = 0; i < mrowsA; i++) { - if (A(i,j) != 0) + for (int j = 0; j < mrowsc; j++) { - nz++; - rn(nz) = i + 1; - cn(nz) = j + 1; - a(nz) = A(i,j); + if (A(i,j) != 0) + { + nz++; + rn(nz) = i + 1; + cn(nz) = j + 1; + a(nz) = A(i,j); + } } } + } + else + { + SparseMatrix A (args(1).matrix_value ()); // get the sparse matrix + + if (error_state) + { + error ("__glpk__: invalid value of A"); + return retval; + } -// DON'T DELETE THIS PART... REPRESENTS THE SPARSE MATRICES MANIPULATION -// }else{ -// int i,j; -// int *jc,*ir; -// double *pr; -// int nelc,count,row; -// -// /* NOTE: nnz is the actual number of nonzeros and is stored as the -// last element of the jc array where the size of the jc array is the -// number of columns + 1 */ -// nz = *(mxGetJc(A_IN) + mrowsc); -// jc = mxGetJc(A_IN); -// ir = mxGetIr(A_IN); -// pr = mxGetPr(A_IN); -// -// rn=(int *)calloc(nz+1,sizeof(int)); -// cn=(int *)calloc(nz+1,sizeof(int)); -// a=(double *)calloc(nz+1,sizeof(double)); -// -// count=0; row=0; -// for(i=1;i<=mrowsc;i++){ -// nelc=jc[i]-jc[i-1]; -// for(j=0;j freeLB (mrowsc); for (int i = 0; i < mrowsc; i++) { - if (isinf (lb[i])) + if (xisinf (lb[i])) { freeLB(i) = 1; lb[i] = -octave_Inf; @@ -558,7 +565,7 @@ Array freeUB (mrowsc); for (int i = 0; i < mrowsc; i++) { - if (isinf (ub[i])) + if (xisinf (ub[i])) { freeUB(i) = 1; ub[i] = octave_Inf; diff --git a/src/Makefile.in b/src/Makefile.in --- a/src/Makefile.in +++ b/src/Makefile.in @@ -247,8 +247,8 @@ OCT_LINK_DEPS = \ -L../libcruft $(LIBCRUFT) -L../liboctave $(LIBOCTAVE) \ - -L. $(LIBOCTINTERP) $(UMFPACK_LIBS) $(AMD_LIBS) $(COLAMD_LIBS) \ - $(CHOLMOD_LIBS) $(CCOLAMD_LIBS) $(BLAS_LIBS) $(FFTW_LIBS) $(LIBS) $(FLIBS) + -L. $(LIBOCTINTERP) $(CHOLMOD_LIBS) $(UMFPACK_LIBS) $(AMD_LIBS) \ + $(COLAMD_LIBS) $(CCOLAMD_LIBS) $(BLAS_LIBS) $(FFTW_LIBS) $(LIBS) $(FLIBS) DISTFILES = Makefile.in ChangeLog mkdefs mkops mkgendoc \ DOCSTRINGS mkbuiltins mk-oct-links \ diff --git a/src/syscalls.cc b/src/syscalls.cc --- a/src/syscalls.cc +++ b/src/syscalls.cc @@ -1018,7 +1018,7 @@ error ("WIFSIGNALED: expecting integer argument"); } #else - warning ("WIFSIGNALED always returns false in this version of Octave") + warning ("WIFSIGNALED always returns false in this version of Octave"); #endif return retval; @@ -1046,7 +1046,7 @@ error ("WTERMSIG: expecting integer argument"); } #else - warning ("WTERMSIG always returns false in this version of Octave") + warning ("WTERMSIG always returns false in this version of Octave"); #endif return retval; @@ -1076,7 +1076,7 @@ error ("WCOREDUMP: expecting integer argument"); } #else - warning ("WCOREDUMP always returns false in this version of Octave") + warning ("WCOREDUMP always returns false in this version of Octave"); #endif return retval; @@ -1105,7 +1105,7 @@ error ("WIFSTOPPED: expecting integer argument"); } #else - warning ("WIFSTOPPED always returns false in this version of Octave") + warning ("WIFSTOPPED always returns false in this version of Octave"); #endif return retval; @@ -1133,7 +1133,7 @@ error ("WSTOPSIG: expecting integer argument"); } #else - warning ("WSTOPSIG always returns false in this version of Octave") + warning ("WSTOPSIG always returns false in this version of Octave"); #endif return retval; @@ -1160,7 +1160,7 @@ error ("WIFCONTINUED: expecting integer argument"); } #else - warning ("WIFCONTINUED always returns false in this version of Octave") + warning ("WIFCONTINUED always returns false in this version of Octave"); #endif return retval; diff --git a/src/sysdep.cc b/src/sysdep.cc --- a/src/sysdep.cc +++ b/src/sysdep.cc @@ -121,9 +121,9 @@ void MINGW_signal_cleanup (void) { - w32_set_quiet_shutdown (void); + w32_set_quiet_shutdown (); - w32_raise_final (): + w32_raise_final (); } #endif