NAG C Library, Mark 26

CLW6I261E

Microsoft Windows, 64-bit, Intel C/C++ or Microsoft C/C++, 32-bit integers

Supplementary Information



Contents

1. Introduction

This page is for supplementary information relating to the implementation described in Section 2.1 of the Installer's Note. It may be augmented over the life-time of the product if further pertinent information becomes available.

2. Applicability

This implementation is considered suitable for operation on the computer systems detailed below:
hardware:          Intel 64 systems and compatible (including AMD64)
operating system:  Microsoft Windows 64-bit editions
C compiler:        Intel 64-bit C++ Compiler Version 17.0.4.210
                   Build 20170411 and compatible
                   Microsoft 64-bit C/C++ Compiler Version 19.00 or compatible

3. Test Platforms

This implementation has been successfully tested using the following:

Note: This list is not exhaustive; other combinations of hardware, operating system and compiler may also work.

4. Accessing the NAG C Library 64-bit DLLs from Embarcadero C++

It is possible to call the DLL version of the NAG C Library from a 64-bit version of Embarcadero C++ (bcc64), but some initial effort is required to make a usable variant of the NAG Library.

Embarcadero C++ requires that 64-bit import libraries be in ELF format, and they provide a tool with their compiler suite which can be used to generate such ELF format libraries. The tool is named mkexp.exe and it can be used like this, for example:

  set NAGLIBDIR=C:\Program Files\NAG\clw6i261e
  mkexp "%NAGLIBDIR%"\lib\CLW6I261E_nag.a "%NAGLIBDIR%"\bin\CLW6I261E_nag.dll
where CLW6I261E_nag.dll is a NAG DLL library, and CLW6I261E_nag.a is the output from mkexp. Before issuing the mkexp command, make sure that you set the variable NAGLIBDIR to be the actual location where your copy of the NAG Library is installed. Also, it is assumed that you have permission to create the file "%NAGLIBDIR%"\lib\CLW6I261E_nag.a - depending on how the NAG Library was installed, you may need Administrator privileges.

This similar command makes a bcc64-compatible import library for the MKL-based NAG DLL library:

  mkexp "%NAGLIBDIR%"\lib\CLW6I261E_mkl.a "%NAGLIBDIR%"\bin\CLW6I261E_mkl.dll

Once the library CLW6I261E_nag.a has been created, you can link to it using bcc64 like this:

  bcc64 -I"%NAGLIBDIR%"\include driver.c "%NAGLIBDIR%"\lib\CLW6I261E_nag.a
where driver.c is your C program.

There is one more thing to note, if you want to compile any of the example programs that are distributed with the NAG C library (from directory "%NAGLIBDIR%"\examples\source), using bcc64. Most of the example programs make use of a macro _countof(x) which is defined in a Microsoft C compiler header file, but is not in header files used by bcc64. The macro is used to compute the number of elements in an array of any type. It's easy to define this macro yourself, for example:

#ifndef _countof
#define _countof(x) sizeof(x) / sizeof(x[0])
#endif
- these lines can be inserted in the example program before you compile it, or you could add them to a local include file such as nag.h.

5. Accessing the NAG C Library 64-bit DLLs from Various Other Environments

Detailed information on calling the DLLs and examples of usage are available for various programming environments including:

Visual Basic header files (Mark 26.0) containing declare statements for each function are also available for download:

The examples and header files listed above are for the Mark 26.0 version of the Library, but will work for this Library if the names of the DLLs and support directories are changed appropriately. Please contact NAG if you require assistance with this, or need headers for the routines which are new at Mark 26.1.