Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package Ipopt for openSUSE:Factory checked in at 2021-09-20 23:32:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Ipopt (Old) and /work/SRC/openSUSE:Factory/.Ipopt.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Ipopt" Mon Sep 20 23:32:57 2021 rev:9 rq:920070 version:3.14.3 Changes: -------- --- /work/SRC/openSUSE:Factory/Ipopt/Ipopt.changes 2021-07-31 18:52:27.482453874 +0200 +++ /work/SRC/openSUSE:Factory/.Ipopt.new.1899/Ipopt.changes 2021-09-20 23:34:32.775276837 +0200 @@ -1,0 +2,11 @@ +Wed Sep 15 08:25:25 UTC 2021 - Atri Bhattacharya <[email protected]> + +- Update to version 3.14.3: + * Fixed timing for iterate initialization if initialization + fails due to an evaluation error. + * Fixed possible integer overflow when reserving space for + indices of Jacobian belonging to fixed variables (introduced + with 3.14.0) and reduced memory usage for indices of Jacobian + belonging to fixed variables. + +------------------------------------------------------------------- Old: ---- Ipopt-3.14.2.tar.gz New: ---- Ipopt-3.14.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Ipopt.spec ++++++ --- /var/tmp/diff_new_pack.aYZRMU/_old 2021-09-20 23:34:33.167277322 +0200 +++ /var/tmp/diff_new_pack.aYZRMU/_new 2021-09-20 23:34:33.171277326 +0200 @@ -18,7 +18,7 @@ %define shlib libipopt0 Name: Ipopt -Version: 3.14.2 +Version: 3.14.3 Release: 0 Summary: A software package for large-scale nonlinear optimization methods License: EPL-2.0 ++++++ Ipopt-3.14.2.tar.gz -> Ipopt-3.14.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/.travis.yml new/Ipopt-releases-3.14.3/.travis.yml --- old/Ipopt-releases-3.14.2/.travis.yml 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/.travis.yml 2021-09-03 10:00:53.000000000 +0200 @@ -45,6 +45,12 @@ - libmetis-dev - libhwloc-dev env: VISHIDDEN=true + - os: freebsd + env: NOF77=true + addons: + pkg: + - lapack + - gcc10-devel - os: linux arch: arm64 addons: @@ -98,52 +104,60 @@ - export CPPCHECK=${CPPCHECK:-false} - > if [[ "$TRAVIS_OS_NAME" == "osx" ]] && ! $NOF77; then - brew update; - brew install bash gcc metis hwloc; - $SINGLEPRECISION && brew install lapack; - if [[ "$OSX" == 10.14 ]] ; then export CC=gcc-11 ; export CXX=g++-11 ; - elif [[ "$OSX" == 10.15 ]] ; then export CC=gcc-11 ; export CXX=g++-11 ; - elif [[ "$OSX" == 11 ]] ; then export CC=gcc-11 ; export CXX=g++-11 ; fi ; - $CC --version; $CXX --version; gfortran --version; + brew update; + brew install bash gcc metis hwloc; + $SINGLEPRECISION && brew install lapack; + if [[ "$OSX" == 10.14 ]] ; then export CC=gcc-11 ; export CXX=g++-11 ; + elif [[ "$OSX" == 10.15 ]] ; then export CC=gcc-11 ; export CXX=g++-11 ; + elif [[ "$OSX" == 11 ]] ; then export CC=gcc-11 ; export CXX=g++-11 ; fi ; + $CC --version; $CXX --version; gfortran --version; + fi ; + if [[ "$TRAVIS_OS_NAME" == "freebsd" ]] ; then + export CC=gcc ; export CXX=g++ ; + $CC --version; $CXX --version fi script: # macOS VecLib doesn't work for single-precision routines (https://github.com/mcg1969/vecLibFort) - use homebrew lapack instead - > if $NOF77 || $SINGLEPRECISION || $INT64 ; then - echo "Skipping Spral build." ; - else - git clone --depth 1 --branch master https://github.com/ralna/spral.git && - pushd spral && - ./autogen.sh && - if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then - CFLAGS=-fPIC CXXFLAGS=-fPIC FFLAGS=-fPIC FCFLAGS=-fPIC ./configure --prefix ${HOME}/spral --with-metis="-L/usr/local/Cellar/metis/5.1.0/lib -lmetis" --with-metic-inc-dir=/usr/local/Cellar/metis/5.1.0/include ; + echo "Skipping Spral build." ; else - CFLAGS=-fPIC CXXFLAGS=-fPIC FFLAGS=-fPIC FCFLAGS=-fPIC ./configure --prefix ${HOME}/spral ; - fi && - make install && - popd ; + git clone --depth 1 --branch master https://github.com/ralna/spral.git && + pushd spral && + ./autogen.sh && + if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then + CFLAGS=-fPIC CXXFLAGS=-fPIC FFLAGS=-fPIC FCFLAGS=-fPIC ./configure --prefix ${HOME}/spral --with-metis="-L/usr/local/Cellar/metis/5.1.0/lib -lmetis" --with-metic-inc-dir=/usr/local/Cellar/metis/5.1.0/include ; + else + CFLAGS=-fPIC CXXFLAGS=-fPIC FFLAGS=-fPIC FCFLAGS=-fPIC ./configure --prefix ${HOME}/spral ; + fi && + make install && + popd ; fi - > mkdir -p $HOME/install/share && touch $HOME/install/share/config.site ; ( $NOF77 && echo enable_f77=no ; - $ENABLEDEBUG && ( echo enable_debug=yes ; echo with_ipopt_checklevel=5 ; echo with_ipopt_verbosity=5 ) ; - $SINGLEPRECISION && echo "with_precision=single" ; - $SINGLEPRECISION && [[ "$TRAVIS_OS_NAME" == "osx" ]] && ! $NOF77 && echo "with_lapack=\"-L/usr/local/opt/lapack/lib -llapack -lblas\"" ; - $INT64 && echo "with_intsize=64" ; - [[ -d $HOME/spral ]] && echo "with_spral_cflags=-I${HOME}/spral/include" ; - [[ -d $HOME/spral ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]] && echo "with_spral_lflags=\"-L${HOME}/spral/lib -lspral -lgfortran -lhwloc -lm -lmetis -llapack -lblas -fopenmp\"" ; - [[ -d $HOME/spral ]] && [[ "$TRAVIS_OS_NAME" == "osx" ]] && echo "with_spral_lflags=\"-L${HOME}/spral/lib -lspral -lgfortran -L/usr/local/Cellar/hwloc/2.5.0/lib -lhwloc -lm -L/usr/local/Cellar/metis/5.1.0/lib -lmetis -framework Accelerate -fopenmp\"" ; - [[ "$TRAVIS_OS_NAME" == "osx" ]] && ( echo "with_metis_cflags=-I/usr/local/Cellar/metis/5.1.0/include" ; echo "with_metis_lflags=\"-L/usr/local/Cellar/metis/5.1.0/lib -lmetis\"" ) ; + $ENABLEDEBUG && ( echo enable_debug=yes ; echo with_ipopt_checklevel=5 ; echo with_ipopt_verbosity=5 ) ; + $SINGLEPRECISION && echo "with_precision=single" ; + $SINGLEPRECISION && [[ "$TRAVIS_OS_NAME" == "osx" ]] && ! $NOF77 && echo "with_lapack=\"-L/usr/local/opt/lapack/lib -llapack -lblas\"" ; + $INT64 && echo "with_intsize=64" ; + [[ -d $HOME/spral ]] && echo "with_spral_cflags=-I${HOME}/spral/include" ; + [[ -d $HOME/spral ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]] && echo "with_spral_lflags=\"-L${HOME}/spral/lib -lspral -lgfortran -lhwloc -lm -lmetis -llapack -lblas -fopenmp\"" ; + [[ -d $HOME/spral ]] && [[ "$TRAVIS_OS_NAME" == "osx" ]] && echo "with_spral_lflags=\"-L${HOME}/spral/lib -lspral -lgfortran -L/usr/local/Cellar/hwloc/2.5.0/lib -lhwloc -lm -L/usr/local/Cellar/metis/5.1.0/lib -lmetis -framework Accelerate -fopenmp\"" ; + [[ "$TRAVIS_OS_NAME" == "osx" ]] && ( echo "with_metis_cflags=-I/usr/local/Cellar/metis/5.1.0/include" ; echo "with_metis_lflags=\"-L/usr/local/Cellar/metis/5.1.0/lib -lmetis\"" ) ; ) > $HOME/install/share/config.site ; cat $HOME/install/share/config.site - - git clone --depth 1 https://github.com/coin-or-tools/ThirdParty-ASL - > - pushd ThirdParty-ASL && - ./get.ASL && - ./configure --prefix=$HOME/install && - make && make install && - popd + if [[ "$TRAVIS_OS_NAME" == "freebsd" ]] ; then + echo "Skipping ASL build." ; + else + git clone --depth 1 https://github.com/coin-or-tools/ThirdParty-ASL ; + pushd ThirdParty-ASL && + ./get.ASL && + ./configure --prefix=$HOME/install && + make && make install && + popd ; + fi - > if $NOF77 ; then echo "Skipping Mumps build." ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/ChangeLog.md new/Ipopt-releases-3.14.3/ChangeLog.md --- old/Ipopt-releases-3.14.2/ChangeLog.md 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/ChangeLog.md 2021-09-03 10:00:53.000000000 +0200 @@ -7,6 +7,14 @@ ## 3.14 +### 3.14.3 (2021-09-03) + +- Fixed timing for iterate initialization if initialization fails due to + an evaluation error. +- Fixed possible integer overflow when reserving space for indices of Jacobian + belonging to fixed variables (introduced with 3.14.0) and reduced memory + usage for indices of Jacobian belonging to fixed variables. + ### 3.14.2 (2021-07-21) - Added `OptionsList::UnsetValue()` to remove an option setting. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/README.md new/Ipopt-releases-3.14.3/README.md --- old/Ipopt-releases-3.14.2/README.md 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/README.md 2021-09-03 10:00:53.000000000 +0200 @@ -126,7 +126,6 @@ * **[Mailing list archive](http://list.coin-or.org/pipermail/ipopt/)** (2002-2020): predecessor of Discussions * External resources: * [short Ipopt tutorial](http://drops.dagstuhl.de/volltexte/2009/2089/pdf/09061.WaechterAndreas.Paper.2089.pdf) - * [build Ipopt on Windows step-by-step](https://github.com/Ishanki/IPOPT-Installation-on-Windows-10) Please Cite Us -------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/configure new/Ipopt-releases-3.14.3/configure --- old/Ipopt-releases-3.14.2/configure 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/configure 2021-09-03 10:00:53.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Ipopt 3.14.2. +# Generated by GNU Autoconf 2.71 for Ipopt 3.14.3. # # Report bugs to <https://github.com/coin-or/Ipopt/issues/new>. # @@ -627,8 +627,8 @@ # Identity of this package. PACKAGE_NAME='Ipopt' PACKAGE_TARNAME='ipopt' -PACKAGE_VERSION='3.14.2' -PACKAGE_STRING='Ipopt 3.14.2' +PACKAGE_VERSION='3.14.3' +PACKAGE_STRING='Ipopt 3.14.3' PACKAGE_BUGREPORT='https://github.com/coin-or/Ipopt/issues/new' PACKAGE_URL='https://github.com/coin-or/Ipopt' @@ -1495,7 +1495,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Ipopt 3.14.2 to adapt to many kinds of systems. +\`configure' configures Ipopt 3.14.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1566,7 +1566,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Ipopt 3.14.2:";; + short | recursive ) echo "Configuration of Ipopt 3.14.3:";; esac cat <<\_ACEOF @@ -1764,7 +1764,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Ipopt configure 3.14.2 +Ipopt configure 3.14.3 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2649,7 +2649,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Ipopt $as_me 3.14.2, which was +It was created by Ipopt $as_me 3.14.3, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4270,7 +4270,7 @@ -printf "%s\n" "#define IPOPT_VERSION \"3.14.2\"" >>confdefs.h +printf "%s\n" "#define IPOPT_VERSION \"3.14.3\"" >>confdefs.h printf "%s\n" "#define IPOPT_VERSION_MAJOR 3" >>confdefs.h @@ -4279,7 +4279,7 @@ printf "%s\n" "#define IPOPT_VERSION_MINOR 14" >>confdefs.h -printf "%s\n" "#define IPOPT_VERSION_RELEASE 2" >>confdefs.h +printf "%s\n" "#define IPOPT_VERSION_RELEASE 3" >>confdefs.h @@ -4390,7 +4390,7 @@ # Define the identity of the package. PACKAGE='ipopt' - VERSION='3.14.2' + VERSION='3.14.3' # Some tools Automake needs. @@ -22139,9 +22139,9 @@ - LT_LDFLAGS="$LT_LDFLAGS -version-number 3:14:2" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: libtool version info: -version-number 3:14:2" >&5 -printf "%s\n" "$as_me: libtool version info: -version-number 3:14:2" >&6;} + LT_LDFLAGS="$LT_LDFLAGS -version-number 3:14:3" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: libtool version info: -version-number 3:14:3" >&5 +printf "%s\n" "$as_me: libtool version info: -version-number 3:14:3" >&6;} LT_LDFLAGS="$LT_LDFLAGS -no-undefined" @@ -27998,7 +27998,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Ipopt $as_me 3.14.2, which was +This file was extended by Ipopt $as_me 3.14.3, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28071,7 +28071,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Ipopt config.status 3.14.2 +Ipopt config.status 3.14.3 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/configure.ac new/Ipopt-releases-3.14.3/configure.ac --- old/Ipopt-releases-3.14.2/configure.ac 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/configure.ac 2021-09-03 10:00:53.000000000 +0200 @@ -8,7 +8,7 @@ # Names and other basic things # ############################################################################# -AC_INIT([Ipopt],[3.14.2],[https://github.com/coin-or/Ipopt/issues/new],[],[https://github.com/coin-or/Ipopt]) +AC_INIT([Ipopt],[3.14.3],[https://github.com/coin-or/Ipopt/issues/new],[],[https://github.com/coin-or/Ipopt]) AC_COPYRIGHT([ Copyright 2004, 2011 International Business Machines and others. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/doc/Doxyfile.in new/Ipopt-releases-3.14.3/doc/Doxyfile.in --- old/Ipopt-releases-3.14.2/doc/Doxyfile.in 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/doc/Doxyfile.in 2021-09-03 10:00:53.000000000 +0200 @@ -952,7 +952,7 @@ # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. -FILTER_PATTERNS = *ChangeLog.md="sed -e 's/\bIpopt\b/%Ipopt/g'" +FILTER_PATTERNS = *ChangeLog.md="sed -e 's/\bIpopt\b/%Ipopt/g' -e 's/\/%Ipopt/\/Ipopt/g'" # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/doc/faq.dox new/Ipopt-releases-3.14.3/doc/faq.dox --- old/Ipopt-releases-3.14.2/doc/faq.dox 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/doc/faq.dox 2021-09-03 10:00:53.000000000 +0200 @@ -3,7 +3,7 @@ Contained below is a list of the frequently asked questions for %Ipopt. -## What is %Ipopt? +## What is Ipopt? %Ipopt (*I*nterior *P*oint *OPT*imizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization. %Ipopt implements an interior-point algorithm for continuous, nonlinear, nonconvex, constrained optimization problems. @@ -13,12 +13,11 @@ Please see the [Ipopt project page](https://github.com/coin-or/Ipopt) for a more detailed description. -## How do I use %Ipopt? +## How do I use Ipopt? -You can use %Ipopt directly from your own computer code (C++, C, Fortran, Java, R). -You can also use Ipopt from optimization modeling environments such as [AMPL](http://www.ampl.com/), [GAMS](http://www.gams.com/), [CUTEst](https://github.com/ralna/CUTEst), as well as on the [NEOS Server](http://www-neos.mcs.anl.gov/neos/solvers/nco:Ipopt/AMPL.html). +See \ref HOWTOUSE. -## What license is %Ipopt released under? +## What license is Ipopt released under? The %Ipopt source code is now released under the [Eclipse Public License (EPL)](http://www.eclipse.org/legal/epl-v10.html). @@ -27,24 +26,24 @@ The new license (EPL) is almost the same as the old with 2 "new and improved" features: (i) the license steward is the Eclipse Foundation (not IBM) and (ii) the EPL does not have the "defense termination clause" (aka the patent retaliation bit) which was a point of objection by some. Some additional information regarding the licenses might be found at this [FAQ](http://www.ibm.com/developerworks/library/os-cplfaq.html). -## What do I need to build %Ipopt? +## What do I need to build Ipopt? While the source code for %Ipopt itself is released as open source under the Eclipse Public License (EPL), compilation requires third party components (such as BLAS, LAPACK, some sparse linear solver library) which you have to obtain separately. The %Ipopt documentation gives detailed instructions on how to obtain and compile these components. (These components may be covered by license agreements different from EPL and may not be free for commercial use.) -## On what operating systems can %Ipopt be used? +## On what operating systems can Ipopt be used? Convenient configuration scripts and Makefiles are provided and have been tested for several flavors of GNU/Linux, macOS, and MSYS2/MinGW. Previous versions of IPOPT have also been run on an old iPod, as well as BlueGene. -## Is %Ipopt thread-safe? +## Is Ipopt thread-safe? %Ipopt itself is thread-safe. Please check the used third-party components, i.e., linear algebra and linear solvers, for thread-safety, too. For example, MUMPS is not thread-safe. Since %Ipopt 3.14.0, however, calls into MUMPS are protected by a mutex in the %Ipopt/MUMPS interface, so that it should be possible to use %Ipopt with MUMPS in a multi-threading environment as well. -## What is the method behind %Ipopt? +## What is the method behind Ipopt? %Ipopt implements a interior point method for nonlinear programming. Search directions (coming from a linearization of the optimality conditions) can be computed in a full-space version by solving a large symmetric linear system. @@ -57,7 +56,7 @@ Additional technical information may be found in other publications [here](https://researcher.ibm.com/researcher/view_page.php?id=1717). -## Who do I contact with questions about %Ipopt? +## Who do I contact with questions about Ipopt? If you have any questions or comments please create a discussion at the [Ipopt GitHub Discussions system](https://github.com/coin-or/Ipopt/discussions). Please include detailed information about your configuration (operating system, compilers, version number of Ipopt, etc) if you are writing about a compilation or execution problem. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/doc/interfaces.dox new/Ipopt-releases-3.14.3/doc/interfaces.dox --- old/Ipopt-releases-3.14.2/doc/interfaces.dox 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/doc/interfaces.dox 2021-09-03 10:00:53.000000000 +0200 @@ -1014,7 +1014,7 @@ In the following, we discuss necessary steps to implement example (HS071) with `ipoptr`. A more detailed documentation of `ipoptr` is -available in [contrib/RInterface/inst/doc/ipoptr.pdf](https://github.com/coin-or/Ipopt/raw/master/contrib/RInterface/inst/doc/ipoptr.pdf). +available in [contrib/RInterface/inst/doc/ipoptr.pdf](https://github.com/coin-or/Ipopt/raw/stable/3.14/contrib/RInterface/inst/doc/ipoptr.pdf). First, we define the objective function and its gradient \code{.unparsed} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/doc/main.dox new/Ipopt-releases-3.14.3/doc/main.dox --- old/Ipopt-releases-3.14.2/doc/main.dox 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/doc/main.dox 2021-09-03 10:00:53.000000000 +0200 @@ -113,7 +113,7 @@ - [BLIS fork](https://github.com/amd/blis) (BLAS-like Library Instantiation Software Framework) by AMD - - [ESSL](https://www.ibm.com/support/knowledgecenter/en/SSFHY8/essl_welcome.html) (Engineering Scientific Subroutine Library) by IBM + - [ESSL](https://www.ibm.com/docs/en/essl) (Engineering Scientific Subroutine Library) by IBM - [MKL](https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html) (Math Kernel Library) by Intel @@ -218,6 +218,8 @@ solve problems using %Ipopt. This includes installation and compilation of %Ipopt for use with AMPL as well as linking with your own code. +An installation of the AMPL link to %Ipopt is also available on +[NEOS](https://neos-server.org/neos/solvers/nco:Ipopt/AMPL.html). Additionally, the %Ipopt distribution includes an interface for the R project for statistical computing, see \ref INTERFACE_R. @@ -263,16 +265,22 @@ Interfacing Ipopt from .NET languages such as **C#**, **F#** and **Visual Basic.NET**. +- [cyipopt](https://github.com/mechmotum/cyipopt) + + A **Python** wrapper around %Ipopt with a SciPy-style interface. + - GAMS (modeling environment) The [GAMSlinks project](https://github.com/coin-or/GAMSlinks) on COIN-OR includes a GAMS interface for %Ipopt. + An installation of GAMS with %Ipopt is also available on [NEOS](https://neos-server.org/neos/solvers/nco:Ipopt/GAMS.html). + - [ifopt](https://github.com/ethz-adrl/ifopt) Modern, light-weight (~1k loc), **Eigen**-based <strong>C++</strong> interface to %Ipopt and Snopt. -- [IPyOpt](https://github.com/g-braeunlich/IPyOpt) +- [IPyOpt](https://gitlab.com/g-braeunlich/ipyopt) Interfacing %Ipopt from **Python**. @@ -307,10 +315,6 @@ and communication between clients and solvers, including??%Ipopt, in a distributed environment using Web Services. -- [PyIpopt](https://github.com/g-braeunlich/IPyOpt) - - An interface to the **Python** language. - - [Scilab](https://www.scilab.org/) (free Matlab-like environment): A Scilab interface is available at https://atoms.scilab.org/toolboxes/sci_ipopt. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/examples/recursive_nlp/Makefile.in new/Ipopt-releases-3.14.3/examples/recursive_nlp/Makefile.in --- old/Ipopt-releases-3.14.2/examples/recursive_nlp/Makefile.in 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/examples/recursive_nlp/Makefile.in 2021-09-03 10:00:53.000000000 +0200 @@ -47,7 +47,7 @@ all: $(EXE) $(EXE): $(SRC) - $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) $(INCL) -o $@ $^ $(LIBS) $(ADDLIBS) + $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) $(INCL) -o $@ $(SRC) $(LIBS) $(ADDLIBS) clean: rm -rf $(EXE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/src/Algorithm/IpIpoptAlg.cpp new/Ipopt-releases-3.14.3/src/Algorithm/IpIpoptAlg.cpp --- old/Ipopt-releases-3.14.2/src/Algorithm/IpIpoptAlg.cpp 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/src/Algorithm/IpIpoptAlg.cpp 2021-09-03 10:00:53.000000000 +0200 @@ -538,6 +538,7 @@ catch( IpoptNLP::Eval_Error& exc ) { exc.ReportException(Jnlst(), J_MOREDETAILED); + IpData().TimingStats().InitializeIterates().EndIfStarted(); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = INVALID_NUMBER_DETECTED; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/src/Algorithm/LinearSolvers/IpMa27TSolverInterface.cpp new/Ipopt-releases-3.14.3/src/Algorithm/LinearSolvers/IpMa27TSolverInterface.cpp --- old/Ipopt-releases-3.14.2/src/Algorithm/LinearSolvers/IpMa27TSolverInterface.cpp 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/src/Algorithm/LinearSolvers/IpMa27TSolverInterface.cpp 2021-09-03 10:00:53.000000000 +0200 @@ -90,39 +90,34 @@ 0.0, true, 1.0, true, 1e-8, - "A smaller number pivots for sparsity, a larger number pivots for stability. " - "This option is only available if Ipopt has been compiled with MA27."); + "A smaller number pivots for sparsity, a larger number pivots for stability."); roptions->AddBoundedNumberOption( "ma27_pivtolmax", "Maximum pivot tolerance for the linear solver MA27.", 0.0, true, 1.0, true, 1e-4, - "Ipopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. " - "This option is only available if Ipopt has been compiled with MA27."); + "Ipopt may increase pivtol as high as ma27_pivtolmax to get a more accurate solution to the linear system."); roptions->AddLowerBoundedNumberOption( "ma27_liw_init_factor", "Integer workspace memory for MA27.", 1.0, false, 5.0, "The initial integer workspace memory = liw_init_factor * memory required by unfactored system. " - "Ipopt will increase the workspace size by meminc_factor if required. " - "This option is only available if Ipopt has been compiled with MA27."); + "Ipopt will increase the workspace size by ma27_meminc_factor if required."); roptions->AddLowerBoundedNumberOption( "ma27_la_init_factor", "Real workspace memory for MA27.", 1.0, false, 5.0, "The initial real workspace memory = la_init_factor * memory required by unfactored system. " - "Ipopt will increase the workspace size by meminc_factor if required. " - "This option is only available if Ipopt has been compiled with MA27."); + "Ipopt will increase the workspace size by ma27_meminc_factor if required."); roptions->AddLowerBoundedNumberOption( "ma27_meminc_factor", "Increment factor for workspace size for MA27.", 1.0, false, 2.0, - "If the integer or real workspace is not large enough, Ipopt will increase its size by this factor. " - "This option is only available if Ipopt has been compiled with MA27."); + "If the integer or real workspace is not large enough, Ipopt will increase its size by this factor."); roptions->AddBoolOption( "ma27_skip_inertia_check", "Whether to always pretend that inertia is correct.", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/src/Algorithm/LinearSolvers/IpMa57TSolverInterface.cpp new/Ipopt-releases-3.14.3/src/Algorithm/LinearSolvers/IpMa57TSolverInterface.cpp --- old/Ipopt-releases-3.14.2/src/Algorithm/LinearSolvers/IpMa57TSolverInterface.cpp 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/src/Algorithm/LinearSolvers/IpMa57TSolverInterface.cpp 2021-09-03 10:00:53.000000000 +0200 @@ -198,24 +198,21 @@ 0.0, true, 1.0, true, 1e-8, - "A smaller number pivots for sparsity, a larger number pivots for stability. " - "This option is only available if Ipopt has been compiled with MA57."); + "A smaller number pivots for sparsity, a larger number pivots for stability."); roptions->AddBoundedNumberOption( "ma57_pivtolmax", "Maximum pivot tolerance for the linear solver MA57.", 0.0, true, 1.0, true, 1e-4, - "Ipopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system. " - "This option is only available if Ipopt has been compiled with MA57."); + "Ipopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution to the linear system."); roptions->AddLowerBoundedNumberOption( "ma57_pre_alloc", "Safety factor for work space memory allocation for the linear solver MA57.", 1., false, 1.05, "If 1 is chosen, the suggested amount of work space is used. " - "However, choosing a larger number might avoid reallocation if the suggest values do not suffice. " - "This option is only available if Ipopt has been compiled with MA57."); + "However, choosing a larger number might avoid reallocation if the suggest values do not suffice."); roptions->AddBoundedIntegerOption( "ma57_pivot_order", "Controls pivot order in MA57", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/src/Common/config_ipopt_default.h new/Ipopt-releases-3.14.3/src/Common/config_ipopt_default.h --- old/Ipopt-releases-3.14.2/src/Common/config_ipopt_default.h 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/src/Common/config_ipopt_default.h 2021-09-03 10:00:53.000000000 +0200 @@ -5,7 +5,7 @@ /***************************************************************************/ /* Version number of project */ -#define IPOPT_VERSION "3.14.2" +#define IPOPT_VERSION "3.14.3" /* Major Version number of project */ #define IPOPT_VERSION_MAJOR 3 @@ -14,7 +14,7 @@ #define IPOPT_VERSION_MINOR 14 /* Release Version number of project */ -#define IPOPT_VERSION_RELEASE 2 +#define IPOPT_VERSION_RELEASE 3 /* Define to the C type corresponding to Fortran INTEGER * @deprecated Use ipindex instead. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/src/Interfaces/IpTNLPAdapter.cpp new/Ipopt-releases-3.14.3/src/Interfaces/IpTNLPAdapter.cpp --- old/Ipopt-releases-3.14.2/src/Interfaces/IpTNLPAdapter.cpp 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/src/Interfaces/IpTNLPAdapter.cpp 2021-09-03 10:00:53.000000000 +0200 @@ -58,10 +58,6 @@ jac_idx_map_(NULL), h_idx_map_(NULL), x_fixed_map_(NULL), - jac_fixed_idx_map_(NULL), - jac_fixed_iRow_(NULL), - jac_fixed_jCol_(NULL), - nz_jac_fixed_(0), findiff_jac_ia_(NULL), findiff_jac_ja_(NULL), findiff_jac_postriplet_(NULL), @@ -81,9 +77,6 @@ delete[] jac_idx_map_; delete[] h_idx_map_; delete[] x_fixed_map_; - delete[] jac_fixed_idx_map_; - delete[] jac_fixed_iRow_; - delete[] jac_fixed_jCol_; delete[] findiff_jac_ia_; delete[] findiff_jac_ja_; delete[] findiff_jac_postriplet_; @@ -366,12 +359,14 @@ h_idx_map_ = NULL; delete[] x_fixed_map_; x_fixed_map_ = NULL; - delete[] jac_fixed_idx_map_; - jac_fixed_idx_map_ = NULL; - delete[] jac_fixed_iRow_; - jac_fixed_iRow_ = NULL; - delete[] jac_fixed_jCol_; - jac_fixed_jCol_ = NULL; + jac_fixed_idx_map_.clear(); + jac_fixed_iRow_.clear(); + jac_fixed_jCol_.clear(); +#if __cplusplus >= 201103L + jac_fixed_idx_map_.shrink_to_fit(); + jac_fixed_iRow_.shrink_to_fit(); + jac_fixed_jCol_.shrink_to_fit(); +#endif } // Get the full dimensions of the problem @@ -1087,19 +1082,6 @@ Index* jac_c_jCol = new Index[nz_jac_all]; Index current_nz = 0; - // prepare memory for mapping from Jacobian on fixed variables to full Jacobian - // cppcheck-suppress unreadVariable - Index jac_fixed_length = 0; - if( fixed_variable_treatment_ == MAKE_PARAMETER && IsValid(P_x_full_x_) ) - { - nz_jac_fixed_ = 0; - // the Jacobian w.r.t. fixed variables can have at most number-of-fixed-variables*number-of-constraints nonzeros - jac_fixed_length = std::min(nz_jac_all, n_x_fixed_ * n_full_g); - jac_fixed_idx_map_ = new Index[jac_fixed_length]; - jac_fixed_iRow_ = new Index[jac_fixed_length]; - jac_fixed_jCol_ = new Index[jac_fixed_length]; - } - const Index* c_row_pos = P_c_g_->CompressedPosIndices(); if( IsValid(P_x_full_x_) ) { @@ -1120,11 +1102,9 @@ { // c_col == -1 should mean a fixed variables // c_row == -1 should mean a row in d(x) (but the distinction into c(x) and d(x) isn't relevant for us here) - DBG_ASSERT(nz_jac_fixed_ < jac_fixed_length); - jac_fixed_idx_map_[nz_jac_fixed_] = i; - jac_fixed_iRow_[nz_jac_fixed_] = g_iRow[i]; - jac_fixed_jCol_[nz_jac_fixed_] = g_jCol[i]; - nz_jac_fixed_++; + jac_fixed_idx_map_.push_back(i); + jac_fixed_iRow_.push_back(g_iRow[i]); + jac_fixed_jCol_.push_back(g_jCol[i]); } } } @@ -2623,7 +2603,7 @@ return false; } - if( nz_jac_fixed_ > 0 ) + if( !jac_fixed_idx_map_.empty() ) { if( !internal_eval_jac_g(false) ) { @@ -2637,7 +2617,7 @@ // mappings from full g() indices to index in c() and d() const Index* c_row_pos = P_c_g_->CompressedPosIndices(); const Index* d_row_pos = P_d_g_->CompressedPosIndices(); - for( Index i = 0; i < nz_jac_fixed_; i++ ) + for( size_t i = 0; i < jac_fixed_idx_map_.size(); i++ ) { // Assume the same structure as initially given // correct for 1-based indexing in jac_fixed_iRow_ and jac_fixed_jCol_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Ipopt-releases-3.14.2/src/Interfaces/IpTNLPAdapter.hpp new/Ipopt-releases-3.14.3/src/Interfaces/IpTNLPAdapter.hpp --- old/Ipopt-releases-3.14.2/src/Interfaces/IpTNLPAdapter.hpp 2021-07-21 09:31:43.000000000 +0200 +++ new/Ipopt-releases-3.14.3/src/Interfaces/IpTNLPAdapter.hpp 2021-09-03 10:00:53.000000000 +0200 @@ -612,10 +612,9 @@ Index* x_fixed_map_; /** Index mapping of Jacobian w.r.t. fixed variables. */ - Index* jac_fixed_idx_map_; - Index* jac_fixed_iRow_; - Index* jac_fixed_jCol_; - Index nz_jac_fixed_; + std::vector<Index> jac_fixed_idx_map_; + std::vector<Index> jac_fixed_iRow_; + std::vector<Index> jac_fixed_jCol_; ///@} /** @name Data for finite difference approximations of derivatives */
