# Changelog for the naginterfaces Python Package¶

## Changes in version 28.6.0.0¶

October 12, 2022

This is a minor update containing bug fixes and enhancements to existing functionality. Please refer to the News document for the underlying algorithmic library, at

## Changes in version 28.5.0.0¶

May 18, 2022

This update includes new algorithmic functionality. Please refer to the News document for the underlying algorithmic library, at

### Highlights¶

• New algorithmic functionality.

### New Algorithmic Functionality¶

See the News document for a full list of new routines in this release.

## Changes in version 28.4.0.0¶

April 20, 2022

This is a minor update containing bug fixes and enhancements to existing functionality. Please refer to the News document for the underlying algorithmic library, at

## Changes in version 28.3.0.1¶

March 23, 2022

This is a bug-fix update.

### Fixes¶

#### Licensing¶

• Licence utilities have been updated to understand the new product-code scheme.

## Changes in version 28.3.0.0¶

March 16, 2022

This update includes new algorithmic functionality. It contains some backwards incompatible changes; see also the Interface Changes document.

It also brings a new numbering scheme in which the subrelease number (3 here) denotes the month number when the release appeared.

### Highlights¶

• New algorithmic functionality.

### New Algorithmic Functionality¶

See the News document for a full list of new routines in this release.

### Removed Algorithmic Functionality¶

In this update some previously-deprecated functions have been removed. See the Replacement Calls document for more information.

### Enhancements¶

#### API¶

• The Hessian callback in naginterfaces.library.opt.handle_solve_ipopt() now requires in-place updating of the return vector hx, for efficiency.

Also in this solver, length argument nnzu has been dropped and the (optional) multipliers u have been added on input for use in a future release.

These are backwards incompatible changes.

Additionally, the indicator and statistics arrays used during monitoring and returned by the solver have been expanded in size.

• The lsqgrd callback in naginterfaces.library.opt.handle_solve_bxnl() now requires in-place updating of the return vector rdx, for future integration with finite differences.

This is a backwards incompatible change.

• The value for key 'build_id' in the return dict of naginterfaces.library.info.impl_details() now has type str (or None) instead of int (or None) in order to accommodate additional information.

### Platform Support¶

• The primary CPython 3 supported is now Python 3.10.

• The primary Intel Python supported is now 2021 (Python 3.9).

• The primary NumPy supported is now 1.22.

• This release adds support for Intel-based macOS 12/Monterey.

• Support for macOS 10.14/Mojave has been dropped.

## Changes in version 27.3.1.0¶

December 01, 2021

This is a minor update containing a functionality enhancement.

All changes are backwards compatible with code using other releases from the 27.3 line.

## Changes in version 27.3.0.0¶

October 06, 2021

This is a major update.

### Highlights¶

• New algorithmic functionality.

### New Algorithmic Functionality¶

See the News document for a full list of new routines in this release.

### Enhancements¶

#### Installation¶

• The source distributions have been given pip compliant directory names. The names of the resulting .zip archives are unchanged. Now each source archive unzips to give directory naginterfaces-{ver}, which no longer has the platform identifier in its name.

### Platform Support¶

• The primary CPython 3 supported is now Python 3.9.

• Support for Python 3.6 has been dropped.

• The primary supported NumPy version is now 1.21.

• This release adds support for Intel-based macOS 11/Big Sur.

## Changes in version 27.2.0.0¶

Never publicly released.

## Changes in version 27.1.0.0¶

October 16, 2020

This is a major update. It contains some backwards incompatible changes; see also the Interface Changes document.

### Highlights¶

• New algorithmic functionality.

• Support for Python 2 has been dropped.

### New Algorithmic Functionality¶

See the News document for a full list of new routines in this release.

### Enhancements¶

#### Documentation¶

• Detailed algorithmic descriptions are now included in the Notes section of a routine’s documentation.

• NAG Library functions are now documented in individual pages rather than all together by module. This leads to significant performance improvements with some browsers.

Note therefore that a previous URL of the form

something/naginterfaces.library.anova.html#naginterfaces.library.anova.confidence

now becomes

something/naginterfaces.library.anova.confidence.html

#### Licensing¶

• Licence diagnostics now display the name of the machine on which they are being run, when licensing problems are found.

### Platform Support¶

• Support for Python 2 and 3.5 has been dropped.

• The primary supported NumPy version is now 1.19.

## Changes in version 27.0.2.0¶

March 16, 2020

This is a minor update containing functionality enhancements and bug fixes.

All changes are backwards compatible with code using other releases from the 27.0 line.

The primary supported versions of CPython 3 and associated NumPy have been increased.

### Enhancements¶

#### Documentation¶

• Expanded the advice on suggested values for some parameters.

### Fixes¶

#### Library Functionality¶

• The underlying NAG algorithmic Engine has been corrected so that the presolver used by LP and SOCP optimization routines checks infeasibility first when modifying bounds of non-singleton variables.

### Platform Support¶

• The primary CPython 3 supported is now Python 3.8.

• The primary supported NumPy version for Python 3 is now 1.17.

• Support for Python 3.4 has been dropped.

## Changes in version 27.0.1.3¶

December 17, 2019

This is a bug-fix update which also contains some documentation enhancements.

### Enhancements¶

#### Documentation¶

• Improved the usage of bold text and the ceiling function, and the display of fractions and tables.

• More intra-routine cross-referencing has been added.

• Introduced new References subsections.

## Changes in version 27.0.1.2¶

October 16, 2019

This is a minor update for compatibility with Python 3.8 on Windows.

### Enhancements¶

#### Run Time¶

• The loading on Windows of the underlying DLL for the NAG algorithmic Engine has been updated. It is now compatible with changes to the ctypes module in Python 3.8.

## Changes in version 27.0.1.1¶

October 08, 2019

This is a bug-fix update which also contains some documentation enhancements.

### Enhancements¶

#### Documentation¶

• Function descriptions have been expanded.

## Changes in version 27.0.1.0¶

September 04, 2019

This is a minor update containing functionality enhancements and bug fixes.

All changes are backwards compatible with code using other releases from the 27.0 line.

### Enhancements¶

#### API¶

• Integer scalars may now be supplied for real-valued input, and will be promoted internally. The same is true for integer arrays as long as the associated array in the NAG wrapper is not to be modified in place.

specfun.bessel_i0_real_vector([0., 1., 3., 6.])


one is now permitted to use

specfun.bessel_i0_real_vector([0, 1, 3, 6])


## Changes in version 27.0.0.1¶

July 23, 2019

This is a bug-fix update.

## Changes in version 27.0.0.0¶

July 10, 2019

This is a major update. It contains some backwards incompatible changes; see also the Interface Changes document.

### Highlights¶

• New algorithmic functionality.

• The underlying NAG library on Linux now uses 64-bit integers.

### Removed Algorithmic Functionality¶

In this major update some previously-deprecated functions have been removed. See the Replacement Calls document for more information.

### Enhancements¶

#### Documentation¶

• The Quick Start has been simplified and now calls naginterfaces.library.opt.bounds_quasi_func_easy().

• The descriptions of communication objects (comm) have been expanded in many cases.

• Styling improvements have enhanced the layout and usage of space across all pages.

• Sections listing exceptions have been streamlined by collapsing duplicated entries together.

### Platform Support¶

• The primary supported Intel Python is now 2019 (Python 3.6).

• The primary supported NumPy version is now 1.16. The minimum supported version is 1.15.

• This release has dropped support for macOS 10.12/Sierra.

## Changes in version 26.2.2.4¶

February 13, 2019

This is a bug-fix update.

## Changes in version 26.2.2.3¶

December 19, 2018

This is a bug-fix update.

### Fixes¶

#### Documentation¶

• Tables are now rendered in the HTML documentation.

#### Run Time¶

• Diagnostic messages on Windows when a licence could not be validated have been made more helpful.

• Further improvements to the handling of ‘spiked’ arrays, this time in callback functions.

• Improved checking of storage-order compatibility in callback functions.

## Changes in version 26.2.2.2¶

December 11, 2018

This is a bug-fix update.

## Changes in version 26.2.2.1¶

December 04, 2018

This is a bug-fix update.

### Fixes¶

#### Run Time¶

• The Windows package now operates more effectively in the presence of incompatible compiler run time libraries.

## Changes in version 26.2.2.0¶

November 26, 2018

This is a minor update containing functionality enhancements and bug fixes.

All changes are backwards compatible with code using other releases from the 26.2 line.

### Enhancements¶

#### Documentation¶

• Warnings raised by functions are now documented in a distinct Warns section, separate from any existing Raises section.

• A new documentation section Other Parameters has been added to routines that use optional algorithmic parameters.

### Fixes¶

#### Documentation¶

• Array slices in the documentation now follow Python’s half-open semantics.

#### Run Time¶

• The stack context for an algorithmic warning raised by a withdrawn routine has been made more accurate.

• Rank checking has been fixed for rank-1 NumPy arrays.

### Platform Support¶

• The package now officially supports macOS 10.14/Mojave.

## Changes in version 26.2.1.2¶

October 26, 2018

This is a bug-fix update.

## Changes in version 26.2.1.1¶

October 08, 2018

This is a bug-fix update.

## Changes in version 26.2.1.0¶

September 17, 2018

This is a minor update containing functionality enhancements and bug fixes.

All changes are backwards compatible with code using other releases from the 26.2 line.

The primary supported CPython 3 and NumPy versions have been increased.

### Enhancements¶

#### Documentation¶

• Added instructions to the front matter for how eligible customers can install the non-licence-managed version of the package.

#### Run Time¶

• Diagnostic output has been improved when the underlying NAG library fails to load (which is usually because incompatible runtimes have been loaded ahead of it).

• Diagnostic output has been improved when arrays having differing storage orders are supplied on input or are returned from a user-supplied callback.

• Added run-time diagnostic for the use of unsupported 32-bit Python (on Windows).

### Platform Support¶

• The primary CPython 3 supported is now Python 3.7.

• The primary NumPy supported is now 1.15, for both PyPI and Intel Python.

## Changes in version 26.2.0.2¶

August 21, 2018

This is a bug-fix update.

## Changes in version 26.2.0.1¶

August 07, 2018

This is a bug-fix update.

### Fixes¶

#### Documentation¶

• Cross referencing made more accurate between functions and examples in which they are called.

## Changes in version 26.2.0.0¶

July 25, 2018

The first release of the package.