Upgrading your NAG Library to the latest Mark

Posted on
17 Feb 2016

In the second of a series of blog posts relating to technical tips, the first being 'Finding the right routine in the NAG Library - Decision Trees', I will focus on upgrading your version of The NAG Library to the latest Mark. NAG has recently released Mark 25 and the development for Mark 26 is passing through our rigorous quality assurance procedures as I write this blog post.

As with any update to a product, there are many reasons that lead to the production of a new release. The primary reason that NAG produces new released is to the expand the library and give you access to the latest routines. New algorithms are being developed and used all the time and NAG wants to ensure that you have access to algorithms that we have selected for inclusion in The NAG Library. We take the business of including a new routine into the library very seriously. We only select routines that have gone through a peer review process, complement the routines with the library and pass our rigorous quality assurance and testing. Secondary, as with any piece of software, we identify bugs within our code base. We maintain an error bulletin where you can see the bugs we have discovered and fixed .

As well as completely new routines that expand the scope of the library, we also introduce new routines that supersede current routines in functionality. When this happens, the old routine is marked for withdrawal in the next Mark. This means that the two routines will coexist across several Marks to allow users to update their codebase. With each Mark, we include a section in our documentation that highlights the withdrawn and superseded routines. This section lists the routines which we had withdrawn from the library and the Mark when this occurred. If we have replaced the routine, then the new routine is listed. Finally, if the interface has changed, then advice on calling the new routine is provided.

Of course, you are free to maintain your code base and not factor in these updates. Executables compiled and linked with a static library implementation of the NAG Library will continue to work indefinitely. In this instance, we recommend that you save the NAG documentation and the NAG Library. If you are using a shareable library, then you must keep the original library as the NAG Library code is not tightly bound to your executable.

It is NAG’s policy to support the two most recent Marks, but we will endeavor to help any of our supported customers with any questions or queries they may have related to older Marks.