Issue 82, 06 August 2009


The NAG Library and Octave

In the last edition of NAGNews we focused on the inherent flexibility of the NAG Library by highlighting its ease of use in Java “Calling NAG Library Routines from Java”. Following this theme, today's spotlight is the programming environment, Octave. Octave, similar in nature to MATLAB, is a freely redistributable “high-level language, primarily intended for numerical computation”.

The white paper “Calling NAG Library Routines from Octave” gives detailed instructions on how to call routines in the NAG C Library and NAG Fortran Library from the Octave programming environment.

If you plan to use NAG routines in Octave we would really like to hear about your experiences. Email us at

Calling all those with Clusters!

While computing technologies and programming techniques rapidly evolve, the requirements for software tools, including mathematical and statistical functionality, grows at a slightly slower pace. Vital to NAG however, is the need to provide current and future users of the NAG Library with numerical routines that harness the power and capabilities on high performance computing system installations.

Although not a new concept, application building and programming on cluster systems using MPI (message passing interface) is one area that NAG is currently researching. NAG already offers a set of tailored numerical routines for parallel computing in the form of the NAG Parallel Library, but we want to learn more about ‘real life’ MPI use.

So, if your application, problems or prototypes are either running on, or destined for HPC clusters we want to talk to you. Please note that this is not a sales ploy, but purely for research purposes to help us establish current and potential use and help evolve NAG's parallel computing provision. To make contact, please email

Supercomputing: Can supercomputers make simulation answers more accurate?

Computer modelling now supports nearly every area of scientific research and, in many cases, is the most (or only) viable method of getting useful predictions to explore phenomena and test hypotheses. With this pervasive role of computer models in scientific research, the correctness of these models is critical to scientific advancement, perhaps even more so than other key characteristics such as ease of use, speed or cost. In short, results matter. This is an interesting contention ' that correctness trumps ease, speed and cost. Even as I write it, I'm unsure ' but consider, however simple, quick and cheap a prediction is, it can never advance science if it is wrong or, just as bad, it is unclear how close to the truth it is. Clearly, hard-to-use, slow-to-run or expensive-to-use models can affect whether it is possible to use the simulation; but correctness can affect whether it is even worth using.

Continue reading Andrew Jones' article here

Discover new NAG functionality in the NAG Library

NAG launched the latest version of the NAG Fortran Library earlier this year and since then various implementations have been made available to supported customers of the Library.

If you're a supported user, or are studying or working at an organization or company that you think might have a site wide licence to NAG software and are not sure if you're using the most up to date version of your library, please get in contact with us and we'll guide you, if applicable, to the most current version available.

By not upgrading you could be missing an important trick or two! New functionality in the NAG Fortran Library includes: global optimization, wavelet transforms, option pricing routines, partial least squares, nearest correlation matrix, quantiles and enhancements in statistics and many other areas.

The new functionality will feature in the forth coming versions of the NAG Toolbox for MATLAB, NAG C Library and NAG SMP Library.

W. J Cody (1926-2009)' An Appreciation

I first met Jim Cody when visiting the Applied Mathematics Division at Argonne National Laboratory in May 1971. I was interested in calculating the Incomplete Error Function to high accuracy millions of times in Quantum Chemistry calculations. Jim was already an international authority on the development of special and elementary functions, working particularly in collaboration with Hirondo Kuki on the SHARE Numerical Analysis project.

They were exciting times. The development of Numerical Algorithms Libraries and projects like Eispack were opening up scientific and engineering computing. Jim's early special contribution was FUNPACK, a comprehensive elementary functions package which was extensively used and highly regarded.

An early interest of the nascent IFIP Working Group 2.5 on Numerical Software was portability (Jim was a long term member of the Group). This led to the portability wars of the middle 70s. Cody and friends pressed for Hardware portability, to be based on a hardware-based arithmetic standard. Brian Smith, the Bell AT & T group and I sought Software portability ' developing computing language and machine parameter sets to enable us to write numerical software that, with minimum change, could be transferred to different computing systems, whilst retaining the ability to compute to agreed accuracy and efficiency across all of them. At a meeting in Oakbrook, Illinois in the summer of 1976, Jim declared “I'm going to kill Brian Ford's argument about software portability once and for all!”. I'm sure I made equally competitive comments too! In the end we both succeeded, because we needed, of course, both hardware and software portability! The success for Jim, working with Velvo Kahan and others was the IEEE 754 hardware floating point standard, which changed the face of world computing. Later he chaired the committee producing the radix-independent version of the standard. We defined portability and developed a software preparation methodology which was ultimately followed by the rest of the scientific and computing communities.

Jim was a feisty, hardworking man who set a high standard of algorithmic design and software programming for all of us to emulate. He bore no malice, indeed he was a gentle man. He was a great American patriot having fought in the Korean War and loved his country. He invited my family and I to the celebration of the US Bi-Centenary on 4th July 1976, just after the Oakbrook meeting, in his beloved Glen Ellyn, Illinois. He wanted us to see it right! We had a great day.

Jim made a notable contribution to the testing and certification of numerical software, latterly focussing his work on ELEFUNT, his elementary functions package accompanied by a book and MACHAR, a routine to automatically detect and exploit machine characteristics. He left the Mathematics and Computing Science Division of Argonne National Laboratory in 1991 at a time of redundancies to enable a young colleague to retain his position. We always looked forward to the Cody Christmas card. Jim was a keen photographer and the picture invariably displayed his scholarly characteristics, subject sharply observed with outstanding precision. We shall miss the card this year.

As his vacation sign always showed, Jim has “gone fishin'”

Brian Ford, Founder Director, Numerical Algorithms Group

William J Cody died recently, in Glen Ellyn, Illinois

Ask the Expert!

Question: “ I'm using the Absoft Fortran Compiler. What version of the NAG Library is best suited for use with this compiler?”

Answer: Prior to the launch of Mark 22 of the NAG Fortran Library earlier this year, we always recommended the NAG Windows Dynamic Link Library (DLL) as the appropriate library to use with this compiler. If you still wish to use the DLL for other purposes, perhaps to use from Excel for example then this advice is still valid.

However, it might be more convenient for those who only wish to use the NAG Library with the Absoft Fortran Compiler to use the Mark 22 NAG Fortran Library for Microsoft Windows 32-bit (FLW3222DC), which also contains a shareable library ' a DLL in fact.

Both the Absoft compiler and the DLLs provided with this implementation of the NAG Fortran Library use the CDECL calling convention. (Thus rendering the DLLs unsuitable for direct use with Excel, VB etc but making them very convenient for use with Absoft.) We have tested the DLLs using the latest Absoft compiler, version 10.2.

In order to import the routines from the DLL, a DLL_IMPORT statement has to be used instead of a standard EXTERNAL statement for the NAG routines. For example the NAG example program for A02AAF becomes:

*     A02AAF Example Program Text
*     Mark 14 Revised. NAG Copyright 1989.
*     .. Parameters ..
      INTEGER          NIN, NOUT
      PARAMETER        (NIN=5,NOUT=6)
*     .. Local Scalars ..
*     .. Absoft Import Declaration ..
      DLL_IMPORT       A02AAF
*     .. Executable Statements ..
      WRITE (NOUT,*) 'A02AAF Example Program Results'
      WRITE (NOUT,*)
*     Skip heading in data file
      READ (NIN,*)
      READ (NIN,*) XR, XI
*     Compute square root of (XR,XI) and return in (YR,YI)
      WRITE (NOUT,*) '   XR    XI      YR       YI'
      WRITE (NOUT,99999) XR, XI, YR, YI
99999 FORMAT (1X,2F6.1,2F9.4)

Out & About with NAG

  • HPC User Forum
    8 -10 September 2009, Broomfield (Denver), CO, USA
    Andrew Jones, VP HPC Business at NAG is presenting on HECToR at the IDC HPC User Forum.
  • BASTA!
    21 - 25 September 2009, Mainz, Germany
    NAG experts will be present at BASTA! NAG will be showcasing the flexibility of the NAG Library and the new NAG Library for .NET beta. BASTA! is one of the largest exhibitions in Europe focussing on .NET, Visual Studio and other programming environments. Topics in the speaker line-up include Cloud Computing, Multicore Programming plus much more.
  • HECToR (High End Computing Terascale Resource) Training Courses
    Presented by the NAG HECToR Team
    A full list of forthcoming HECToR Training Courses can be viewed on the official HECToR website here.

For more information on any of the above events visit NAG's ‘Out & About’ webpage

New NAG product implementations

The NAG Fortran Library, Mark 22 is now available for the following platform:

  • x86-64 Linux64 using the NAG Fortran Compiler

The NAG Fortran Compiler, Release 5.2 is now available for the following platforms:

  • X86-32 Linux
  • x86-64 Linux64

For full details of these and all other available implementations, visit the NAG site. Comprehensive technical details of each implementation are given in the relevant Installation and User Notes at

Managing your subscription

Please feel free to forward this newsletter to colleagues or to post it to your company's Intranet sites.

To subscribe, unsubscribe or learn more about managing your subscription, please see:

NAGNews - Past Issues

We provide an online archive of past issues of NAGNews. For editions prior to these, please contact us.