Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package Ipopt for openSUSE:Factory checked 
in at 2022-10-27 13:54:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Ipopt (Old)
 and      /work/SRC/openSUSE:Factory/.Ipopt.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Ipopt"

Thu Oct 27 13:54:30 2022 rev:17 rq:1031426 version:3.14.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/Ipopt/Ipopt.changes      2022-08-12 
16:06:58.399529481 +0200
+++ /work/SRC/openSUSE:Factory/.Ipopt.new.2275/Ipopt.changes    2022-10-27 
13:55:06.932856181 +0200
@@ -1,0 +2,13 @@
+Sun Oct 23 06:47:21 UTC 2022 - Atri Bhattacharya <badshah...@gmail.com>
+
+- Update to version 3.14.10:
+  * Added option grad_f_constant to specify that objective
+    function is linear. If set, the gradient of the objective will
+    be requested by Ipopt only once [gh#coin-or/Ipopt#597].
+  * Added OrigIpoptNLP::orig_d_L() and OrigIpoptNLP::orig_d_U() to
+    get original constraint sides.
+  * TNLP::get_curr_violations() now returns the constraint
+    violation and complementarity with respect to the original
+    (non-relaxed) constraint sides [gh#coin-or/Ipopt#603].
+
+-------------------------------------------------------------------

Old:
----
  Ipopt-3.14.9.tar.gz

New:
----
  Ipopt-3.14.10.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Ipopt.spec ++++++
--- /var/tmp/diff_new_pack.WpM6CV/_old  2022-10-27 13:55:07.436858751 +0200
+++ /var/tmp/diff_new_pack.WpM6CV/_new  2022-10-27 13:55:07.440858772 +0200
@@ -19,7 +19,7 @@
 %define sover 3
 %define shlib libipopt%{sover}
 Name:           Ipopt
-Version:        3.14.9
+Version:        3.14.10
 Release:        0
 Summary:        A software package for large-scale nonlinear optimization 
methods
 License:        EPL-2.0

++++++ Ipopt-3.14.9.tar.gz -> Ipopt-3.14.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/ChangeLog.md 
new/Ipopt-releases-3.14.10/ChangeLog.md
--- old/Ipopt-releases-3.14.9/ChangeLog.md      2022-07-21 10:31:39.000000000 
+0200
+++ new/Ipopt-releases-3.14.10/ChangeLog.md     2022-10-10 18:55:38.000000000 
+0200
@@ -7,6 +7,15 @@
 
 ## 3.14
 
+### 3.14.10 (2022-10-11)
+
+- Added option `grad_f_constant` to specify that objective function is linear.
+  If set, the gradient of the objective will be requested by Ipopt only once. 
[#597]
+- Added `OrigIpoptNLP::orig_d_L()` and `OrigIpoptNLP::orig_d_U()` to get
+  original constraint sides (before relaxation due to bound_relax_factor > 0).
+- `TNLP::get_curr_violations()` now returns the constraint violation and
+  complementarity w.r.t. the original (non-relaxed) constraint sides. [#603]
+
 ### 3.14.9 (2022-07-21)
 
 - Fixed mapping of meta data for variable bounds, e.g., variable names,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/README.md 
new/Ipopt-releases-3.14.10/README.md
--- old/Ipopt-releases-3.14.9/README.md 2022-07-21 10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/README.md        2022-10-10 18:55:38.000000000 
+0200
@@ -110,7 +110,7 @@
 
 Some precompiled binaries of Ipopt are also available:
 
-- **[Ipopt releases page](https://github.com/coin-or/Ipopt/releases)** 
provides libraries and executables
+- **[Ipopt releases page](https://github.com/coin-or/Ipopt/releases)** 
provides libraries and executables for Windows
 - 
**[JuliaBinaryWrappers](https://github.com/JuliaBinaryWrappers/Ipopt_jll.jl/releases)**
 provides libraries and executables
 - **[IDEAS](https://github.com/IDAES/idaes-ext/releases)** provides 
executables; these executables include HSL solvers
 - **[AMPL](http://ampl.com/products/solvers/open-source/#ipopt)** provides 
executables
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/configure 
new/Ipopt-releases-3.14.10/configure
--- old/Ipopt-releases-3.14.9/configure 2022-07-21 10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/configure        2022-10-10 18:55:38.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.9.
+# Generated by GNU Autoconf 2.71 for Ipopt 3.14.10.
 #
 # 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.9'
-PACKAGE_STRING='Ipopt 3.14.9'
+PACKAGE_VERSION='3.14.10'
+PACKAGE_STRING='Ipopt 3.14.10'
 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.9 to adapt to many kinds of systems.
+\`configure' configures Ipopt 3.14.10 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.9:";;
+     short | recursive ) echo "Configuration of Ipopt 3.14.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1769,7 +1769,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Ipopt configure 3.14.9
+Ipopt configure 3.14.10
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2654,7 +2654,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.9, which was
+It was created by Ipopt $as_me 3.14.10, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4275,7 +4275,7 @@
 
 
 
-printf "%s\n" "#define IPOPT_VERSION \"3.14.9\"" >>confdefs.h
+printf "%s\n" "#define IPOPT_VERSION \"3.14.10\"" >>confdefs.h
 
 
 printf "%s\n" "#define IPOPT_VERSION_MAJOR 3" >>confdefs.h
@@ -4284,7 +4284,7 @@
 printf "%s\n" "#define IPOPT_VERSION_MINOR 14" >>confdefs.h
 
 
-printf "%s\n" "#define IPOPT_VERSION_RELEASE 9" >>confdefs.h
+printf "%s\n" "#define IPOPT_VERSION_RELEASE 10" >>confdefs.h
 
 
 
@@ -4395,7 +4395,7 @@
 
 # Define the identity of the package.
  PACKAGE='ipopt'
- VERSION='3.14.9'
+ VERSION='3.14.10'
 
 
 # Some tools Automake needs.
@@ -22144,9 +22144,9 @@
 
 
 
-  LT_LDFLAGS="$LT_LDFLAGS -version-number 3:14:9"
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: libtool version info: 
-version-number 3:14:9" >&5
-printf "%s\n" "$as_me: libtool version info: -version-number 3:14:9" >&6;}
+  LT_LDFLAGS="$LT_LDFLAGS -version-number 3:14:10"
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: libtool version info: 
-version-number 3:14:10" >&5
+printf "%s\n" "$as_me: libtool version info: -version-number 3:14:10" >&6;}
 
 
   LT_LDFLAGS="$LT_LDFLAGS -no-undefined"
@@ -27827,7 +27827,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.9, which was
+This file was extended by Ipopt $as_me 3.14.10, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -27900,7 +27900,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-Ipopt config.status 3.14.9
+Ipopt config.status 3.14.10
 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.9/configure.ac 
new/Ipopt-releases-3.14.10/configure.ac
--- old/Ipopt-releases-3.14.9/configure.ac      2022-07-21 10:31:39.000000000 
+0200
+++ new/Ipopt-releases-3.14.10/configure.ac     2022-10-10 18:55:38.000000000 
+0200
@@ -8,7 +8,7 @@
 #                       Names and other basic things                        #
 #############################################################################
 
-AC_INIT([Ipopt],[3.14.9],[https://github.com/coin-or/Ipopt/issues/new],[],[https://github.com/coin-or/Ipopt])
+AC_INIT([Ipopt],[3.14.10],[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.9/doc/impl.dox 
new/Ipopt-releases-3.14.10/doc/impl.dox
--- old/Ipopt-releases-3.14.9/doc/impl.dox      2022-07-21 10:31:39.000000000 
+0200
+++ new/Ipopt-releases-3.14.10/doc/impl.dox     2022-10-10 18:55:38.000000000 
+0200
@@ -104,7 +104,7 @@
  |      row    |        col  |      value      |
  |:------------|:------------|:--------------- |
  | iRow[0] = 1 | jCol[0] = 1 | values[0] = 1.0 |
- | iRow[1] = 2 | jCol[1] = 1 | values[1] = 1.1 |
+ | iRow[1] = 2 | jCol[1] = 2 | values[1] = 1.1 |
  | iRow[2] = 3 | jCol[2] = 1 | values[2] = 3.0 |
  | iRow[3] = 3 | jCol[3] = 3 | values[3] = 1.2 |
  | iRow[4] = 4 | jCol[4] = 3 | values[4] = 6.0 |
@@ -117,7 +117,7 @@
  |      row    |        col  |      value      |
  |:------------|:------------|:----------------|
  | iRow[0] = 0 | jCol[0] = 0 | values[0] = 1.0 |
- | iRow[1] = 1 | jCol[1] = 0 | values[1] = 1.1 |
+ | iRow[1] = 1 | jCol[1] = 1 | values[1] = 1.1 |
  | iRow[2] = 2 | jCol[2] = 0 | values[2] = 3.0 |
  | iRow[3] = 2 | jCol[3] = 2 | values[3] = 1.2 |
  | iRow[4] = 3 | jCol[4] = 2 | values[4] = 6.0 |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/doc/install.dox 
new/Ipopt-releases-3.14.10/doc/install.dox
--- old/Ipopt-releases-3.14.9/doc/install.dox   2022-07-21 10:31:39.000000000 
+0200
+++ new/Ipopt-releases-3.14.10/doc/install.dox  2022-10-10 18:55:38.000000000 
+0200
@@ -186,14 +186,14 @@
 
 There are two versions of HSL available:
 
-- HSL Archive:   contains outdated codes that are freely available for personal
+- Coin-HSL Archive: contains outdated codes that are freely available for 
personal
     commercial or non-commercial usage. Note that you may not
     redistribute these codes in either source or binary form without
     purchasing a licence from the authors. This version includes MA27,
     MA28, and MC19.
 
-- HSL Full:   contains more modern codes that are freely available for academic
-    use only. This version includes the codes from the HSL Archive and
+- Coin-HSL Full: contains more modern codes that are freely available for 
academic
+    use only. This version includes the codes from the Coin-HSL Archive and
     additionally MA57, HSL_MA77, HSL_MA86, and HSL_MA97.
     %Ipopt supports the HSL Full codes from 2013 and later.
 
@@ -201,7 +201,7 @@
 
 1.  Go to <http://hsl.rl.ac.uk/ipopt>.
 
-2.  Choose whether to download either the Archive code or the HSL Full
+2.  Choose whether to download either the Coin-HSL Archive code or the 
Coin-HSL Full
     code. To download, select the relevant "source" link.
 
 3.  Follow the instructions on the website, read the license, and submit
@@ -227,7 +227,7 @@
     git clone https://github.com/coin-or-tools/ThirdParty-HSL.git
     cd ThirdParty-HSL
 
-Now unpack the HSL sources archive, move and rename the resulting directory
+Now unpack the Coin-HSL sources archive, move and rename the resulting 
directory
 so that it becomes `ThirdParty-HSL/coinhsl`.
 Then, in `ThirdParty-HSL`, configure, build, and install the HSL sources:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/doc/options.dox 
new/Ipopt-releases-3.14.10/doc/options.dox
--- old/Ipopt-releases-3.14.9/doc/options.dox   2022-07-21 10:31:39.000000000 
+0200
+++ new/Ipopt-releases-3.14.10/doc/options.dox  2022-10-10 18:55:38.000000000 
+0200
@@ -373,6 +373,14 @@
 Possible values: yes, no
 </blockquote>
 
+\anchor OPT_grad_f_constant
+<strong>grad_f_constant</strong>: Indicates whether to assume that the 
objective function is linear
+<blockquote>
+ Activating this option will cause Ipopt to ask for the Gradient of the 
objective function only once from the NLP and reuse this information later. The 
default value for this string option is "no".
+
+Possible values: yes, no
+</blockquote>
+
 \anchor OPT_jac_c_constant
 <strong>jac_c_constant</strong>: Indicates whether to assume that all equality 
constraints are linear
 <blockquote>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/src/Algorithm/IpIpoptData.hpp 
new/Ipopt-releases-3.14.10/src/Algorithm/IpIpoptData.hpp
--- old/Ipopt-releases-3.14.9/src/Algorithm/IpIpoptData.hpp     2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Algorithm/IpIpoptData.hpp    2022-10-10 
18:55:38.000000000 +0200
@@ -238,7 +238,6 @@
    /** Hessian or Hessian approximation (do not hold on to it, it might be 
changed) */
    SmartPtr<const SymMatrix> W()
    {
-      DBG_ASSERT(IsValid(W_));
       return W_;
    }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Ipopt-releases-3.14.9/src/Algorithm/IpOrigIpoptNLP.cpp 
new/Ipopt-releases-3.14.10/src/Algorithm/IpOrigIpoptNLP.cpp
--- old/Ipopt-releases-3.14.9/src/Algorithm/IpOrigIpoptNLP.cpp  2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Algorithm/IpOrigIpoptNLP.cpp 2022-10-10 
18:55:38.000000000 +0200
@@ -90,6 +90,12 @@
       "the matrix is written to output with print_level corresponding to 
J_MORE_DETAILED; "
       "so beware of large output!");
    roptions->AddBoolOption(
+      "grad_f_constant",
+      "Indicates whether to assume that the objective function is linear",
+      false,
+      "Activating this option will cause Ipopt to ask for the Gradient of the 
objective function "
+      "only once from the NLP and reuse this information later.");
+   roptions->AddBoolOption(
       "jac_c_constant",
       "Indicates whether to assume that all equality constraints are linear",
       false,
@@ -142,6 +148,7 @@
    options.GetEnumValue("hessian_approximation_space", enum_int, prefix);
    hessian_approximation_space_ = HessianApproximationSpace(enum_int);
 
+   options.GetBoolValue("grad_f_constant", grad_f_constant_, prefix);
    options.GetBoolValue("jac_c_constant", jac_c_constant_, prefix);
    options.GetBoolValue("jac_d_constant", jac_d_constant_, prefix);
    options.GetBoolValue("hessian_constant", hessian_constant_, prefix);
@@ -179,11 +186,12 @@
    // Reset the cache entries belonging to a dummy dependency.  This
    // is required for repeated solve, since the cache is not updated
    // if a dimension is zero.  It is also required if we choose
-   // jac_[cd]_constant and hessian_constant differently between
-   // runs
+   // jac_[cd]_constant, grad_f_constant, or hessian_constant differently 
between
+   // runs or when the values of these derivatives changes due to a problem 
change.
    std::vector<const TaggedObject*> deps(1);
    deps[0] = NULL;
    std::vector<Number> sdeps(0);
+   grad_f_cache_.InvalidateResult(deps, sdeps);
    c_cache_.InvalidateResult(deps, sdeps);
    d_cache_.InvalidateResult(deps, sdeps);
    jac_c_cache_.InvalidateResult(deps, sdeps);
@@ -340,6 +348,10 @@
       orig_x_L_ = ConstPtr(tmp);
       tmp = x_U->MakeNewCopy();
       orig_x_U_ = ConstPtr(tmp);
+      tmp = d_L->MakeNewCopy();
+      orig_d_L_ = ConstPtr(tmp);
+      tmp = d_U->MakeNewCopy();
+      orig_d_U_ = ConstPtr(tmp);
 
       relax_bounds(-bound_relax_factor_, *x_L);
       relax_bounds(bound_relax_factor_, *x_U);
@@ -507,7 +519,12 @@
 {
    SmartPtr<Vector> unscaled_grad_f;
    SmartPtr<const Vector> retValue;
-   if( !grad_f_cache_.GetCachedResult1Dep(retValue, &x) )
+   const Vector* dep = NULL;
+   if( !grad_f_constant_ )
+   {
+      dep = &x;
+   }
+   if( !grad_f_cache_.GetCachedResult1Dep(retValue, dep) )
    {
       grad_f_evals_++;
       unscaled_grad_f = x_space_->MakeNew();
@@ -519,7 +536,7 @@
       ASSERT_EXCEPTION(success && IsFiniteNumber(unscaled_grad_f->Nrm2()), 
Eval_Error,
                        "Error evaluating the gradient of the objective 
function");
       retValue = 
NLP_scaling()->apply_grad_obj_scaling(ConstPtr(unscaled_grad_f));
-      grad_f_cache_.AddCachedResult1Dep(retValue, &x);
+      grad_f_cache_.AddCachedResult1Dep(retValue, dep);
    }
 
    return retValue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Ipopt-releases-3.14.9/src/Algorithm/IpOrigIpoptNLP.hpp 
new/Ipopt-releases-3.14.10/src/Algorithm/IpOrigIpoptNLP.hpp
--- old/Ipopt-releases-3.14.9/src/Algorithm/IpOrigIpoptNLP.hpp  2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Algorithm/IpOrigIpoptNLP.hpp 2022-10-10 
18:55:38.000000000 +0200
@@ -185,7 +185,7 @@
     */
    virtual SmartPtr<const SymMatrix> uninitialized_h();
 
-   /** Lower bounds on x */
+   /** Scaled lower bounds on x */
    virtual SmartPtr<const Vector> x_L() const
    {
       return x_L_;
@@ -197,7 +197,7 @@
       return Px_L_;
    }
 
-   /** Original lower bounds on x
+   /** Original unscaled lower bounds on x
     *
     * Returns NULL if bounds are not relaxed.
     * @since 3.14.0
@@ -207,7 +207,7 @@
       return orig_x_L_;
    }
 
-   /** Upper bounds on x */
+   /** Scaled upper bounds on x */
    virtual SmartPtr<const Vector> x_U() const
    {
       return x_U_;
@@ -219,7 +219,7 @@
       return Px_U_;
    }
 
-   /** Original upper bounds on x
+   /** Original unscaled upper bounds on x
     *
     * Returns NULL if bounds are not relaxed.
     * @since 3.14.0
@@ -229,7 +229,7 @@
       return orig_x_U_;
    }
 
-   /** Lower bounds on d */
+   /** Scaled lower bounds on d */
    virtual SmartPtr<const Vector> d_L() const
    {
       return d_L_;
@@ -241,7 +241,17 @@
       return Pd_L_;
    }
 
-   /** Upper bounds on d */
+   /** Original unscaled lower bounds on d
+    *
+    * Returns NULL if bounds are not relaxed.
+    * @since 3.14.10
+    */
+   virtual SmartPtr<const Vector> orig_d_L() const
+   {
+      return orig_d_L_;
+   }
+
+   /** Scaled upper bounds on d */
    virtual SmartPtr<const Vector> d_U() const
    {
       return d_U_;
@@ -253,6 +263,16 @@
       return Pd_U_;
    }
 
+   /** Original unscaled upper bounds on d
+    *
+    * Returns NULL if bounds are not relaxed.
+    * @since 3.14.10
+    */
+   virtual SmartPtr<const Vector> orig_d_U() const
+   {
+      return orig_d_U_;
+   }
+
    virtual SmartPtr<const SymMatrixSpace> HessianMatrixSpace() const
    {
       return h_space_;
@@ -459,6 +479,12 @@
 
    /** Original unmodified upper bounds on x */
    SmartPtr<const Vector> orig_x_U_;
+
+   /** Original unmodified lower bounds on d */
+   SmartPtr<const Vector> orig_d_L_;
+
+   /** Original unmodified upper bounds on d */
+   SmartPtr<const Vector> orig_d_U_;
    ///@}
 
    /**@name Default Compiler Generated Methods
@@ -533,6 +559,11 @@
     */
    bool check_derivatives_for_naninf_;
 
+   /** Flag indicating if we need to ask for objective
+    *  Gradient only once
+    */
+   bool grad_f_constant_;
+
    /** Flag indicating if we need to ask for equality constraint
     *  Jacobians only once
     */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Ipopt-releases-3.14.9/src/Common/config_ipopt_default.h 
new/Ipopt-releases-3.14.10/src/Common/config_ipopt_default.h
--- old/Ipopt-releases-3.14.9/src/Common/config_ipopt_default.h 2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Common/config_ipopt_default.h        
2022-10-10 18:55:38.000000000 +0200
@@ -5,7 +5,7 @@
 /***************************************************************************/
 
 /* Version number of project */
-#define IPOPT_VERSION "3.14.9"
+#define IPOPT_VERSION "3.14.10"
 
 /* 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 9
+#define IPOPT_VERSION_RELEASE 10
 
 /* 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.9/src/Interfaces/IpTNLP.cpp 
new/Ipopt-releases-3.14.10/src/Interfaces/IpTNLP.cpp
--- old/Ipopt-releases-3.14.9/src/Interfaces/IpTNLP.cpp 2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Interfaces/IpTNLP.cpp        2022-10-10 
18:55:38.000000000 +0200
@@ -924,11 +924,22 @@
 
       // violation of d_L <= d(x) -> compute d_L - d first
       SmartPtr<Vector> d_viol_L;
-      if( orignlp->d_L()->Dim() > 0 )
+      SmartPtr<const Vector> d_L;
+      d_L = orignlp->orig_d_L();
+      if( IsValid(d_L) )
       {
-         SmartPtr<Vector> tmp = orignlp->d_L()->MakeNewCopy();
+         // orig_d_L is unscaled, but we need the scaled one below (because d 
is scaled)
+         if( orignlp->NLP_scaling()->have_d_scaling() )
+            d_L = orignlp->NLP_scaling()->apply_vector_scaling_d_NonConst(d_L);
+      }
+      else // if no relaxation, then orig_d_L() returns NULL, use d_L instead
+         d_L = orignlp->d_L();
+      if( d_L->Dim() > 0 )
+      {
+         SmartPtr<Vector> tmp = d_L->MakeNewCopy();
          d_viol_L = d->MakeNew();
          d_viol_L->Set(0.);
+
          orignlp->Pd_L()->TransMultVector(-1., *d, 1., *tmp);   // tmp := 
-P^Td + d_L, scaled
          orignlp->Pd_L()->MultVector(1., *tmp, 0., *d_viol_L);  // d_viol_L := 
P(d_L - P^Td), scaled
          if( !scaled && orignlp->NLP_scaling()->have_d_scaling() )
@@ -944,9 +955,19 @@
 
       // violation of d(x) <= d_U -> compute d - d_U first
       SmartPtr<Vector> d_viol_U;
-      if( orignlp->d_U()->Dim() > 0 )
+      SmartPtr<const Vector> d_U;
+      d_U = orignlp->orig_d_U();
+      if( IsValid(d_U) )
+      {
+         // orig_d_U is unscaled, but we need the scaled one below (because d 
is scaled)
+         if( orignlp->NLP_scaling()->have_d_scaling() )
+            d_U = orignlp->NLP_scaling()->apply_vector_scaling_d_NonConst(d_U);
+      }
+      else // if no relaxation, then orig_d_U() returns NULL, use d_U instead
+         d_U = orignlp->d_U();
+      if( d_U->Dim() > 0 )
       {
-         SmartPtr<Vector> tmp = orignlp->d_U()->MakeNewCopy();
+         SmartPtr<Vector> tmp = d_U->MakeNewCopy();
          d_viol_U = d->MakeNew();
          d_viol_U->Set(0.);
          orignlp->Pd_U()->TransMultVector(1., *d, -1., *tmp);   // tmp := P^Td 
- d_U, scaled
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/src/Interfaces/IpTNLP.hpp 
new/Ipopt-releases-3.14.10/src/Interfaces/IpTNLP.hpp
--- old/Ipopt-releases-3.14.9/src/Interfaces/IpTNLP.hpp 2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Interfaces/IpTNLP.hpp        2022-10-10 
18:55:38.000000000 +0200
@@ -645,7 +645,9 @@
     * %Ipopt solves the problem, and also to request a premature termination.
     *
     * The information provided by the entities in the argument list correspond
-    * to what %Ipopt prints in the iteration summary (see also \ref OUTPUT).
+    * to what %Ipopt prints in the iteration summary (see also \ref OUTPUT),
+    * except for inf_pr, which by default corresponds to the original problem
+    * in the log but to the scaled internal problem in this callback.
     * Further information can be obtained from the ip_data and ip_cq objects.
     * The current iterate and violations of feasibility and optimality can be
     * accessed via the methods Ipopt::TNLP::get_curr_iterate() and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/src/Interfaces/Ipopt.java 
new/Ipopt-releases-3.14.10/src/Interfaces/Ipopt.java
--- old/Ipopt-releases-3.14.9/src/Interfaces/Ipopt.java 2022-07-21 
10:31:39.000000000 +0200
+++ new/Ipopt-releases-3.14.10/src/Interfaces/Ipopt.java        2022-10-10 
18:55:38.000000000 +0200
@@ -777,7 +777,9 @@
     * %Ipopt solves the problem, and also to request a premature termination.
     *
     * The information provided by the entities in the argument list correspond
-    * to what %Ipopt prints in the iteration summary (see also \ref OUTPUT).
+    * to what %Ipopt prints in the iteration summary (see also \ref OUTPUT),
+    * except for inf_pr, which by default corresponds to the original problem
+    * in the log but to the scaled internal problem in this callback.
     * The value of algorithmmode is either REGULARMODE or RESTORATIONPHASEMODE.
     *
     * The current iterate and violations of feasibility and optimality can be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Ipopt-releases-3.14.9/test/getcurr.cpp 
new/Ipopt-releases-3.14.10/test/getcurr.cpp
--- old/Ipopt-releases-3.14.9/test/getcurr.cpp  2022-07-21 10:31:39.000000000 
+0200
+++ new/Ipopt-releases-3.14.10/test/getcurr.cpp 2022-10-10 18:55:38.000000000 
+0200
@@ -25,6 +25,7 @@
 #define ASSERTEQ(val1, val2) \
    do if( std::abs((val1)-(val2)) > 
TESTTOL*std::max(1.0,std::max((double)std::abs(val1),(double)std::abs(val2))) ) 
\
    { \
+      fflush(stdout); \
       fprintf(stderr, "Line %d: Wrong %s = %.12g, expected %s = %.12g\n", 
__LINE__, #val1, val1, #val2, val2); \
       abort(); \
    } while (false)
@@ -579,6 +580,9 @@
    bool maximize
 )
 {
+   printf("\nRun with fixedvar_makeconstr = %d, start_resto = %d, scale = %d, 
maximize = %d\n",
+      fixedvar_makeconstr, start_resto, scale, maximize);
+
    // Create an instance of your nlp...
    SmartPtr<TNLP> nlp = new TestNLP(fixedvar_makeconstr, scale, maximize);
 

Reply via email to