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.
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
This implementation has been successfully tested using the following:
hardware: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz machine: scarborough cpu flags: sse2 avx operating system: Windows 7 Professional Service Pack 1 compiler: Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24210 for x64 Visual Studio Tools: VS 2015 compiler: Intel(R) C++ Intel(R) 64 Compiler for Intel(R) 64 Version 16.0.4.246 Build 20160811 Visual Studio Tools: VS 2015
hardware: Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz machine: looe cpu flags: sse2 avx avx2 operating system: Windows 10 Pro compiler: Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25019 for x64 Visual Studio Tools: VS 2017 compiler: Intel(R) C++ Intel(R) 64 Compiler for Intel(R) 64, Version 17.0.4.210 Build 20170411 Visual Studio Tools: VS 2017
hardware: Intel(R) Xeon(R) CPU X5650 @ 2.67GHz machine: win764qp2 cpu flags: sse2 operating system: Windows 7 Professional Service Pack 1 compiler: Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24213.1 for x64 Visual Studio Tools: VS 2015 compiler: Intel(R) C++ Intel(R) 64 Compiler XE for Intel(R) 64, Version 15.0.5.280 Build 20150805 Visual Studio Tools: VS 2015
hardware: Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz machine: win764 cpu flags: sse2 avx operating system: Windows 7 Professional Service Pack 1 compiler: Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x64 Visual Studio Tools: VS 2015 compiler: Intel(R) C++ Intel(R) 64 Compiler for Intel(R) 64, Version 17.0.4.210 Build 20170411 Visual Studio Tools: VS 2017
hardware: Intel(R) Xeon(R) CPU E31240 @ 3.30GHz machine: win1064qp cpu flags: sse2 avx operating system: Windows 10 Enterprise compiler: Intel(R) C++ Intel(R) 64 Compiler for Intel(R) 64, Version 18.0.0.124 Build 20170811 Visual Studio Tools: VS 2017
Note: This list is not exhaustive; other combinations of hardware, operating system and compiler may also work.
It is possible to call the DLL version of this 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\clw6i261el mkexp "%NAGLIBDIR%"\lib\CLW6I261E_nag.a "%NAGLIBDIR%"\bin\CLW6I261E_nag.dllwhere 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.awhere 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.
Detailed information on calling the DLLs and examples of usage are available for various programming environments including:
Visual Basic header files (Mark 26.1) containing declare statements for each function are also available for download: