Javascript Menu by Deluxe-Menu.com
[Home]
[Client Area]
English Japanese
RELEASE NOTES - November 2005

Release notes for Xpress-MP 2005B.
Release notes for Xpress-MP 2005A.


For those users upgrading from an earlier 2004 release please see the
release notes for releases 2004A-2004D also.




New in Release 2005B


Xpress-Mosel 1.6.1

Compiler Library
  • a breakpoint marker is now inserted before the condition of 'repeat' and 'while' loops: this enables profiling of conditions in these loops
Module mmxprs 1.4.3
  • 'setcallback' now supports the 'cutlog callback'
  • deprecated callback 'topcutmgr' has been removed
Xpress-IVE 1.16.20

  • Enhanced conditional breakpoints in IVE debugger.
Xpress-SLP 1.21

  • XSLPcalluserfunc now checks that all the arguments required by the function have been supplied and produces an error if there are incompatibilities.
Module mmxslp 1.4.1
  • SLPcalluserfunc arguments can now be arrays with arbitrary types of index set. Previously only ranges of the form 1..n were accepted.
  • User function type "M" (multi-valued) is now accepted in SLPDATA functions.


Fixed in Release 2005B


Xpress-Optimizer 16.10.02
  • Inaccurate reduced costs are handled better in primal
  • Unbounded semi-continuous variables are handled in this version
  • A problem with cut scaling has been fixed
  • A problem with resizing during factorizing has been fixed
  • The correct MIP status is returned if the LP solve is interrupted
  • Empty rows are now ignored when deciding whether to call heuristics
  • A problem with loading directives from file for a problem built in memory has been fixed
  • A problem with user added cuts has been fixed
  • Solution path stability has been improved under Linux
  • A 2GB limit on the barrier factorization size has been removed
  • The stability of the solution of QP problems with the barrier has been improved
  • A problem with zero size factorizations in the barrier has been fixed
  • A problem with presolving semi-continuous variables has been fixed
  • A problem with re-optimizing with barrier in the tree search has been fixed
.NET interface
  • Removed obsolete MaxSlave control
Java interface
  • XPRSprob no longer declared final and now has extra constructor functions.
Xpress-Mosel 1.6.0

Compiler library
  • a problem has been fixed in the compilation of subroutine calls
  • constant set definition of type 'S=T' does not finalise any more the original set (i.e. for the constant 'S=T', T remains unchanged)
Runtime library
  • 'in' operator is now correct even if applied to a range set including MAX_INT
  • the module manager controls now whether module version numbers are not overflowing
Profiler
  • the profiler now computes properly the time spent in conditions of repeat/while loops
Java interface
  • classes XPRMArrayOfBooleans and XPRMSetOfBooleans are not missing any more in xprm.jar
Module mmxprs 1.4.3
  • a potential crash when an empty string is passed to a function expecting a file name has been fixed
  • a problem has been fixed in the management of basis when constraints or variables are removed between save and load of a basis
  • the default value for pseudo costs in directives is now the value of the control parameter XPRS_PSEUDOCOST (was 0)
  • trying to modify the optimizer problem from a callback now implies an error
Module mmodbc 1.6.1
  • a potential problem in the computation of buffer sizes on 64bit platforms has been fixed
Module mmjobs 1.0.1
  • terminating a model with a call to 'run' does not lead to a crash any more
.NET interface 1.0.3
  • OEM Licensing functions now correctly declared static, so it's possible to call them.
  • Better handling of licensing errors
  • Model parameters now return 'true' for IsReadable and IsWriteable properties
  • No longer crashes when accessing IoDriver.Module property for IO drivers that aren't supplied by modules.
  • XPRM.IODrivers property now works as expected.
  • Gives better compilation errors when compiling a Mosel source file.
  • More effecient garbage-collection when model is explicitely disposed
Xpress-IVE 1.16.20

  • Optimizer dialog is laid out correctly regardless of font size.
  • Better error reporting when setting strategies in Optimizer dialog.
  • Syntax errors are now always correctly matched with files.
  • Fixed debugger functionality with respect to included files.
  • All editor properties are now saved
  • Multiple other fixes and updates
Xpress-SLP 1.21

  • Derivatives provided by an Excel spreadsheet user function are now recovered and stored in the correct order. Previously they were transposed and did not work correctly if the function was also multi-valued.
  • The callback set by XSLPsetcbslpdestroy is now called whenever an SLP problem is destroyed. Previously it was only called if user functions were defined.
  • User-specified multi-valued functions are now recognized as such. Previously only functions identified as multi-valued by the system were accepted.
  • Multi-valued functions called by XSLPcalluserfunc now return the correct values. Previously some values could be lost, and occasional memory corruption could occur.
  • Functions called by XSLPcalluserfunc could receive incorrect arguments if not all possible arguments were required. This has now been corrected, and function declarations of the form "DOUBLE,INTEGER,,,,DOUBLE" now work correctly.
Module mmxslp 1.4.1
  • SLP solution functions can now access a purely linear problem. Previously, zeroes were returned unless the problem had some SLP component.
  • A memory leak from assignments to xvitems has been corrected.
  • Intermittent memory corruption during SLPloadprob has been corrected.
  • Multi-valued functions called from SLPcalluserfunc now return the correct number of results.
  • Calculation of space required for multi-dimensional XVs has been corrected. Previously an XV requiring more than 1000 entries could cause a crash.


New in Release 2005A


Xpress-Optimizer 16.01.02
  • The dual pricing algorithm has been improved. For some difficult LP problems this has resulted in an order of magnitude speed improvement.
  • The speed and stability of the simplex factorization has been improved.
  • The barrier algorithm now requires less memory.
  • The cut generation has been improved.
Java Interface
  • StringHolder/IntHolder/DoubleHolder classes now implement toString()
Xpress-Mosel 1.6.0

This release introduces the Mosel debugger interface: it makes possible execution of a Mosel model statement after statement and gives access to the value of local symbols. The command line interpreter provides now a proper debugger built on this interface. In addition to the debugger the command 'display' has been replaced by the command 'print': this is an expression evaluator. For instance it can handle something like:

print round(getsol(x(1,1)))+getact(C1)

Mosel Console
  • 'delete' command renamed 'unload'
  • 'display' command replaced by 'print': this new command supports arithmetic (on reals) and logical expressions.
    Function supported are: getparam, ceil, floor, round, abs, getsol, getsize, getrcost, getdual, getslack, getact.
    Some functions can be applied to arrays, for instance with 'x' being an array of mpvar:
    • print x : displays address values of each variable of x
    • print getsol(x) : displays solution values of variables in x
    • print getrcost(x) : displays reduced cost of variables in x
    Output of this command is compatible with the data file format of Mosel and can be appended to a file using operator '>>' (e.g. print getsol(x) >> mysol.txt )
  • command 'compile': new option '-G' to include tracing information in the bim file
  • new command 'option' to change options 'realfmt' and 'zerotol': their use is similar to the corresponding Vima parameters.
    The first one is now used as the format to display real numbers. The second one is employed in comparison between numbers when evaluating an expression, it is also used to check whether a value is to be considered as 0 when displaying numbers.
  • new command 'debug' to start execution of the model from the debugger. This command requires that the model has been compiled with option '-G'. In this mode, the command line interpreter accepts a different set of commands:
    • bcondition bk [cond]: Set (or unset) a condition on the specified breakpoint.
    • break [fctname]|[line [file]]: Set a breakpoint at the specified location.
    • breakpoints: List all breakpoints.
    • continue: Continue execution.
    • delete [bkn]: Delete specified breakpoint (0 for all).
    • display expression: Store an expression to be displayed at each interruption.
    • down [nblevel]: Go down in the stack (nblevel times).
    • exportprob [-pms] [filename [objective]]: Show the last generated matrix.
    • info symbol: Symbol information.
    • list [[start] nblines]: List 10 lines from the current location.
    • next [line [file]]: Continue to next statement (skiping function calls) or to teh specified location.
    • option name [[=]value]: View or change interpreter options
    • print expression: Display the value of a given expression.
    • quit: Terminate the debug session.
    • step: Continue to next statement (including in function calls).
    • undisplay [disp]: Remove from display list the provided line or all lines.
    • up [nblevel]: Go up in the stack (nblevel times).
    • where: Display call stack.
  • new command 'profile' to profile execution of a model (compiled with -G) When run with a model which source file is 'm.mos', after execution this command generates 'm.mos.prof'. In front of each line of the model is reported: number of times the line has been executed, how much time has been spent (or percentage of total time is option -p is used) on the statement and elapsed time before the statement was last executed
  • parameters passed to 'run', 'exec', 'system' and 'debug' do not need any more to be quoted if they contain spaces
Runtime Library
  • ** New .NET interface
  • new IO driver 'null': no ouput for writing and empty file for reading
  • new IO driver 'tee': to duplicate an output stream (e.g. the following file opens log1, log2 and send a copy to the console: 'tee:log1&log2&')
  • mem IO driver used with named blocks now accepts an initial amount of memory (e.g. "mem:tutu/2048")
  • new set finalisation mechanism that improves efficiency of access of set elements (used for instance when saving a dynamic array)
  • read errors (when using 'readln' for instance) are not displayed any more if the file is open in silent mode
  • generated names (for exportprob or loadnames for instance) now include local names available when the procedure is executed (model must have been compiled with -G). Local symbols hiding global symbols are prefixed by character '~'
  • new functions of the debugger API: dbg_runmod, dbg_getnblndx, dbg_getlocation, dbg_findproclndx, dbg_setstacklev, dbg_clearbrkp
  • 'getdsoparam' returns ViMa parameter values (like 'realfmt') if the library pointer is NULL (it used to fail in this case)
  • 'getnextdsoparam' returns ViMa parameters (like 'realfmt') if the library pointer is NULL (it used to fail in this case)
  • 'findident' returns local symbols when used from the debugger
  • modification of the ViMa in order to not duplicate the execution context of a module during execution
Compiler Library
  • ** New .NET interface
  • new option '-G' to include tracing information in the bim file
  • preprocessor directive ``#[line] n filename'' now supported by the parser. Thanks to this facility, a model preprocessed by the C preprocessor or m4 for instance can be passed directly to the Mosel compiler without loosing source location in error messages.
  • new procedure `assert(cond)' for debugging: if the condition `cond' is false, the execution terminates with an error message. Unless compiler option `keepassert' is used, these statements are automatically removed when no debugging option is in use (-g or -G).
  • new parser parameters that are evaluated at compile time and can be accessed using 'getparam': parser_line (the line being parsed), parser_file (name of file being parsed), parser_date (current date), parser_time (current time), parser_version (Mosel version)
  • simplification of some basic Boolean expressions (e.g. 't=true' => 't')
  • results of integer constant operations are converted to real in case of overflow
Java Interface
  • debugger API has been added
  • XPRM.license(int,string) deprecated: use XPRM.license(string) instead
Examples
  • new examples mmcover.java and mmcover.c: use of the debugger interface to implement a basic source coverage test tool
Native Interface
  • new service 'on exit' called when execution of the model terminates
Module mmetc 1.4.2
  • improve performance on output of sparse arrays
Module mmjobs version 1.0.0 (new module)

This module defines types Model and Event with which one can load several models from a model then run them concurrently. Synchronization mechanisms can be implemented using the provided event scheme and special IO drivers for data transfer through memory.

Module mmodbc 1.6.0
  • support for Windows 64
  • under Posix systems, can use either iODBC or unixODBC: the driver manager is now loaded at run time
  • improved performance on output of sparse arrays
Module mmsystem 1.6.0
  • new IO driver 'pipe' to use output/input of an external program as a stream
  • new procedure 'openpipe' to connect input and output streams to an external program
  • 'gettime' returns now elapsed time since the initialisation of the module (~start of execution)
  • under Posix systems, 'gettime' returns now an elapsed time (used to be CPU time)
Module mmxprs 1.4.2
  • parameter XPRS_MAXSLAVES renamed XPRS_MIPTHREADS
  • added control parameters XPRS_HEURDIVESTRATEGY, XPRS_HEURSELECT
  • remove duplicate definition of maxiis
  • 'initglobal' now called before initial LP (was: before global)


Xpress-IVE 1.16.0
  • Full Mosel debugger and profiler functionality with logging capability.
  • Support for parallel MIP.
  • Deployment wizard now works with VB.NET and C# in addition to C, Java, Visual Basic.
  • Clicking on a variable name in the column view shows its corresponding rows.
  • Color printing from the IVE editor is supported.


Xpress-SLP 1.20

  • XSLPgetversion returns the major and minor version numbers without needing to create a problem
  • New convergence test ("extended convergence continuation tolerance") to terminate optimization if no improvement is detected after convergence on extended criteria.
  • Memory areas can be dimensioned directly by using new memory control variables.
  • New function XSLPuprintmemory to report memory sizes and corresponding control variables.
  • New bit settings for XSLP_CASCADE to reset values of SLP variables which are part of a quadratic objective.
  • New option to use analytic derivatives where available instead of using numeric derivatives throughout.
  • Initial step bounds of infinity (1.0E20) are now allowed, which prevent step bounds being applied to the delta.
  • "mps" is now accepted as a default extension for extended MPS format matrix files.
Mosel module mmxslp 1.3.9
  • The settype procedure now works with genctrs. gettype now works with genctrs even if the problem has not yet been loaded.
  • gexp([array of] xvitem) is now available so that an XV can be included directly in a formula.
  • Memory areas can be dimensioned directly by using new memory control variables.
  • Single and multi-dimensional XVs can now be described in a uniform way (previously, single XVs were addressed by name and multi-dimensional XVs were addressed using the first xvitem in the array; now all can be addressed using the first xvitem).


Xpress-Application Developer 1.0.0
  • Xpress Application Developer (XAD) is an new extension of the Xpress-Mosel modeling and programming language. Xpress Application Developer extends the functionality of Mosel with a set of functions and procedures for creating standard user interfaces. As a result, Mosel can be used as a modeling and programming language for complete optimization application development, from the mathematical representation of a problem to developing the user interface.



Fixed in Release 2005A


Xpress-Optimizer 16.01.02
  • Calling XPRSgetsol from a callback during parallel MIP is now threadsafe.
  • A problem with MIP presolve has been fixed.
  • A problem with presolving bases has been fixed.
Java Interface
  • Should no longer crash when error conditions are encountered.
  • add/destroy MIP-thread callbacks now more reliable.
  • updated XPRSconstants for latest optimizer release.


Xpress-Mosel 1.6.0


Runtime Library
  • raw driver removes the first character of labels if this is not an alphabetic symbol
  • assignments of type 'T:=[true,false,...]' do not produce a general error any more
  • a problem has been fixed in the handling of sets (64bit only)
  • using 'fdelete' on a block of memory obtained from the 'mem:' driver does not corrupt memory any more
Compiler Library
  • statement 'write("")' is now ignored (instead of producing invalid code)
  • a problem has been fixed in the handling of constant conditions in sums
  • tuples used as function parameter are now properly handled
Java Interface
  • a problem has been fixed in the handling of OEM licenses in Java
VB Interface
  • Now trims trailing spaces from OEM licence pathname (facilitates use of fixed-length strings)
Module mmquad 1.2.2
  • a problem in the qexp cloner has been fixed
Module mmjava 1.0.1
  • 'jraw' does not remove the first character of labels any more


Xpress-IVE 1.16.0
  • Fixed crash related to matrix display.
  • Heuristic solutions including those found during cut generation are shown on the MIP search graphs.
  • Special ordered sets are named in the BB tree.
  • The Objective function is shown in the row view.
  • Tooltips are shown for two minutes instead of a few seconds.


Xpress-SLP 1.20

  • XSLP_OBJTOL_A and XSLP_OBJTOL_R have been renamed to XSLP_XTOL_A and XSLP_XTOL_R for consistency with other objective function tolerance tests. The old names will continue to work for the time being.
  • Changes have been made to the initial settings for MISLP so that the root node does not repeat the earlier optimization.
  • The positive and negative constituents of the XSLP_ITOL test have been re-defined based on the sign of the contribution (element * column activity) rather than the sign of the element alone.
  • XSLP_STOL tests are now carried out only when the marginal value of the constraint is less than XSLP_TOLMV.
  • Text format of XSLPwriteprob now handles empty rows, ranges and infinite lower bounds correctly. A quadratic objective is written out in its true form (not as the Q matrix). Coefficients written out using scientific format no longer have the leading digit removed.
  • SLP presolve has been rewritten. It is faster and corrects some errors in the earlier version.
Mosel module mmxslp 1.3.9
  • A genctr referenced in an SLPDATA statement but not defined in the matrix (uninitialized or hidden) is now ignored.
  • getname(genctr) now returns the correct result (previously it returned an adjacent name).
  • Excess zeroes in a formula are now removed.
  • The constant term in a quadratic objective is now accessed correctly.
  • The first row in the matrix can now be defined as an enforced constraint or determining row.
  • An error in which a function of a named gexp (e.g. F(gexp1)) overwrote the gexp has been corrected.
  • A memory leak when generating a matrix containing multi-dimensional XVs has been corrected.



Related Topics
Download Release 2005B
Release notes 2004A-2004D
[Home] [Contact] [Client Area] [Search] [Sitemap] [Links] [Printer Friendly]
  © 2008 Fair Isaac Corporation. All rights reserved.