3.0.0
-
Updated ASL to version 20151209.
-
Documented common definitions: http://ampl.github.io/common.html (#33).
-
Renamed
nl.h
tonl-reader.h
. Includingnl.h
still works, but is deprecated andnl.h
will be removed or re-purposed in the next version. -
[Breaking] Replaced
fmt::StringRef
withmp::NLStringRef
inReadNLString
where both size and null-termination is required. This doesn't affect callers who passed C strings orstd::string
objects. -
[Breaking] Renamed the following previously undocumented symbols:
mp::sol::UNSOLVED
->mp::sol::UNCERTAIN
mp::expr::opcode
->mp::expr::nl_opcode
mp::expr::INT_DIV
->mp::expr::TRUNC_DIV
The new symbols are now documented and part of the stable API.
-
[Breaking] Improved safety of the NL handler API:
-
NLHandler
now takes the second template argument,Impl
, which specifies a class derived fromNLHandler
that receives notifications of unhandled constructs via theOnUnhandled
method. If the latter is not provided, the defaultNLHandler::OnUnhandled
method is called which reports unhandled constructs by throwing exceptions. For the old behavior useNullNLHandler
(#84). -
Added the
NullNLHandler
class that can be used as a base class when only a subset of constructs needs to be handled. Unhandled constructs will be ignored, not reported. -
NLHandler::OnComplementarity
now takesComplInfo
object instead ofint
as the third argument:void OnComplementarity(int con_index, int var_index, ComplInfo info);
-
NLHandler::OnIntSuffix
andNLHandler::OnDblSuffix
now takesuf::Kind
instead ofint
as the second argument:IntSuffixHandler OnIntSuffix(fmt::StringRef name, suf::Kind kind, int num_values); DblSuffixHandler OnDblSuffix(fmt::StringRef name, suf::Kind kind, int num_values);
-
-
[Breaking] Update C++ Format to version 2.0 replacing
fmt::StringRef
withfmt::CStringRef
where null-termination is required, namelyReadNLFile
,ReadNLString
,ReadError
,BinaryReadError
. This doesn't affect callers who passed C strings orstd::string
objects. -
[Breaking] Added NLHandler::EndInput which is called at the end of input.
-
Experimental APIs for working with optimization problems (
problem.h
) and nonlinear expressions (expr.h
). -
gjh
now always returns structural sparsity pattern for Hessian, not only when dual values are provided (#77). -
Fixed building ASL on GCC 5 (#78).
-
NL reader is no longer affected by the current locale (#75).
-
Added NL reader examples: nl-example.cc (#74). Thanks to @baharev (Ali Baharev).
-
Made AMPL GSL bindings compatible with GSL 2.1 (#70). Thanks to @opoplawski (Orion Poplawski).
-
Made handling of function evaluation errors more consistent between platforms (#57, #59).
-
ExprVisitor
can now handle all expression types including string expressions (#51). -
Added support for variable and constraint names (#53).
-
Better error handling in the simple ASL interface (#60).
-
The Sulum solver interface is no longer actively supported because Sulum has been discontinued.
-
Added support for common expressions to new solver interfaces.
-
New solver interfaces (
ilogcp
,gecode
,jacop
,smpswriter
,ssdsolver
andsulum
) don't use ASL any more. -
Fixed discovery of 64-bit ODBC libraries.
-
Fixed compilation issues with MSVC11 (due to broken implementation of variadic templates there) and other versions.
IBM/ILOG CPLEX and CP Optimizers (ilogcp)
-
Updated IBM/ILOG CPLEX CP Optimizer to version 12.6.2.
-
New option
failuredirectedsearchemphasis
:Specifies the number of workers that use failure-directed search once it has started. The value does not have to be integer. For example, value 1.5 means that first worker spends 100% of the time by failure-directed search, second worker 50% and remaining workers 0%. Default =
auto
(depends on actual performance of the failure-directed search). -
New option
dumpfile
:Specifies the name of a file where to dump the model before solving it. This file name must have extension ".cpo". Default = "" (don't dump the model).
-
New option
exportfile
:Specifies the name of a file where to export the model before solving it. This file name must have extension ".cpo". Default = "" (don't export the model).
-
New option
elementinferencelevel
:Inference level for
element
(IloElement
) constraints. Possible values:default
low
basic
medium
extended
The default value is
default
, which allows the inference strength of allelement
constraints to be controlled viadefaultinferencelevel
. -
New option
warninglevel
:Specifies the highest warning level to be displayed, all warnings higher than this level are masked. CP Optimizer warning levels run from 1 to 4, so setting this option to 0 turns off all warnings. Warnings issued may indicate potential errors or inefficiencies in your model. Default = 2.
-
Don't try to retrieve dual solution for quadratically constrained problems in CPLEX.
LocalSolver (locsol)
- Update LocalSolver to version 5.0+: changes.
- Added the
terse
verbosity level which now maps to custom output. Thenormal
verbosity level now maps to LocalSolver verbosity 1 (#46). - Piecewise-linear term support (#46).
- Objective bound support via the
bound
objective suffix (#46). - Fixed handling of initial values and bounds.
- Added
interrupted
status. - Fixed a segfault when using the library built with a broken version of Apple LLVM version 4.2 of clang (#82)