Visual Numerics IMSL* Fortran Library



The Intel® Visual Fortran Compiler for Windows* Professional Edition with IMSL* includes

  • Over 1000 mathematical and statistical algorithms
  • Accuracy and reliability based on 35 years of development and refinement
  • Proven technology that has been thoroughly tested, well documented, and used by developers worldwide
  • Support for shared memory and distributed memory computing environments
  • DLL and static library support
  • Thread safe

"I have used IMSL in nuclear structure theory research focusing on the interplay between single particle and collective effects in relation to the low-energy behavior of atomic nuclei. I rely on a variety of IMSL functions from areas such as nonlinear systems, eigensystems, linear equations, numerical optimization and elliptic integrals for the complex calculations required in my research. The IMSL Fortran Library on Intel architecture provides the functions and performance I need for my research projects."

Dr. Eugene Marshalek
Professor Emeritus of Nuclear Physics
University of Notre Dame

Save time of writing, testing and documenting complex mathematical and statistical algorithms by choosing the time tested and reliable IMSL Fortran Numerical Library.

IMSL Product Brief [PDF 327KB ]
IMSL License Agreement


Features

A Single Cohesive Package of Advanced Numerical Algorithms
At the heart of the IMSL Fortran Numerical Library are the comprehensive and time tested mathematical and statistical numerical algorithms that you can trust. These are the gold standard for numerical computing and software developers can easily embed into their applications. The latest version of the IMSL Fortran Numerical Library is comprised of all of the trusted algorithms from past versions of the IMSL family of Fortran libraries, including the IMSL F90 Library, the IMSL FORTRAN 77 Library, and the IMSL parallel processing features. In addition, new utilities have been added to simplify large-scale computing using ScaLAPACK. For a complete list of the algorithms included in the IMSL Fortran Numerical Library, please see the IMSL Function Catalog [PDF 502KB].

Powerful Interface Modules
The IMSL Fortran Numerical Library includes new powerful and flexible interface modules for all applicable routines, which accomplish the following:

  • Allows users to utilize the fast, convenient optional arguments of the modern Fortran syntax for 100% of the relevant algorithms in the library, allowing for greater control and faster, simpler code development
  • Only require a short list of required arguments for each algorithm to facilitate development of simpler Fortran applications
  • Provide full depth and control via optional arguments for experienced programmers
  • Reduce development effort by checking data-type matches and array sizing at compile time
  • With operators and function modules, provide faster and more natural programming through an object-oriented approach
  • A simple and flexible interface to the library routines speeds programming and simplifies documentation

Thread Safety
The majority of subroutines in IMSL Fortran Numerical Library are thread safe, meaning that the routines have been tested to work within multi-threaded applications. Thread safety allows programmers to call the same routine multiple times in a program to allow multiple instances of the routine running on multiple threads, improving performance and simplifying programming.

The following example, using a dense linear programming subroutine, illustrates the thread safe nature of the IMSL Fortran Library. In this simple example, the IMSL subroutine DENSE_LP is executed on separate threads with a different lower bound for second constraint.

USE DENSE_LP_INT
IMPLICIT NONE
INTEGER NOUT, M, NVAR
PARAMETER (M=4, NVAR=6)
DOUBLE PRECISION A(M, NVAR), B(M), C(NVAR), XSOL(NVAR,3), &
             DSOL(M,3), BL(M,3), BU(M), OBJ
INTEGER IRTYPE(M)
DATA A/1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, -1, &
 	      0, 0, 0, 0, 1, 0, 0, 0, 0, 1/
DATA B/1.5, 0.5, 1.0, 1.0/
DATA C/-1.0, -3.0, 0.0, 0.0, 0.0, 0.0/
DATA BL/1.5, 0.0, 1.0, 1.0, &
        1.5, 0.5, 1.0, 1.0, &
        1.5, 1.0, 1.0, 1.0/
DATA BU/M*-1.D30/
DATA IRTYPE/M*0/      
!                 Solve the LP problem with multiple lower bounds
!$OMP  PARALLEL DO PRIVATE(J)
	DO 10 J = 1, 3
      	   CALL DENSE_LP (A, BL(1,I), BU, C, IRTYPE, OBJ(I), &
          XSOL(1,I), DSOL(1,I))
   10 CONTINUE
!		     Print results
      WRITE(*, 99999) (OBJ(I),I=1,3)
99999 FORMAT (' Objective', 3F11.4)
      END

Complete Backward Compatibility
For over two decades, the IMSL Fortran Numerical Library has maintained full backward compatibility with all previous versions. No code modifications are required for existing applications that rely on previous versions of the IMSL Fortran Numerical Library. Calls to routines from the IMSL FORTRAN 77 Library with the F77 syntax continue to function.

Fully Tested
Visual Numerics has developed over three decades of experience in testing IMSL numerical algorithms for quality and performance across an extensive range of the latest compilers and environments. Visual Numerics works with compiler partners and hardware partners to ensure a high degree of reliability and performance optimization. This experience has allowed Visual Numerics to refine its test methods with painstaking detail. The result of this effort is a robust, sophisticated suite of test methods that allow the IMSL Library user to focus his energy on application development and testing.

SMP/OpenMP Support
The IMSL Fortran Numerical Library offers expanded SMP support for a number of parallel processing environments. Computationally intensive algorithms in the areas of linear systems and matrix manipulation, eigensystem analysis, and fast Fourier transforms (FFTs) leverage SMP capabilities on a variety of systems.

MPI Enabled
The IMSL Fortran Numerical Library provides a dynamic interface for computing mathematical solutions over a distributed system via Message Passing Interface (MPI). MPI enabled routines offer a simple, reliable user interface.


Performance Foundation

The IMSL Fortran Numerical Library utilizes the highly optimized Intel Math Kernel Library (Intel MKL) to provide maximum performance on Intel architecture. Intel MKL is a performance library that is continually updated for the latest Intel processors. Intel MKL provides core mathematical functionality such as vector and matrix math, linear solvers and Fourier Transforms which the IMSL Fortran Numerical Library utilizes for its many scientific calculations.

The IMSL Fortran Numerical Library includes Intel MKL so that at compile time the user can choose to build with a version of the IMSL Library that is linked with Intel MKL in order to gain performance in the areas where Intel MKL has core coverage. For example, once linked, a call to an IMSL Library linear algebra routine will call the Intel MKL linear algebra function, thus benefiting from Intel MKL optimizations for Intel-based hardware.

The IMSL Fortran Library includes hundreds of algorithms that extend mathematical coverage beyond the foundation areas of Intel MKL. Typically, however, these additional math algorithms depend on and utilize foundation math routines. These internal calls automatically select Intel MKL to leverage its performance. Thus, the extended math algorithms in the IMSL Library speed up when Intel MKL is linked.

Together, the IMSL Fortran Library and Intel MKL provide complete algorithm coverage and optimized performance.

Functionality IMSL Fortran Library Intel Math Kernel Library
Extended Math and Statistics
Numerical Optimization  
Time Series, Forecasting  
Tests of Fit and Randomness  
Regression and Correlation  
Probability Distribution  
Nonparametric Statistics  
Foundation Statistics  
Cluster Analysis  
ANOVA, Sampling, Reliability  
Sorting and searching  
Nonlinear Equations  
Differential Equations  
Quadrature  
Interpolation  
Performance Foundation
Random Number Generators
Fast Fourier Transforms
Sparse Matrix Solvers
LAPACK (Dense Matrix Solvers)
BLAS (Vector/Matrix Math)

Back to top