IMSL® Fortran Library features
One cohesive package of advanced numerical algorithms
Lying at the heart of the IMSL Numerical Libraries are the comprehensive and trusted IMSL mathematical and statistical numerical algorithms. The IMSL Libraries are the gold standard for comprehensive libraries of numerical computing algorithms that software developers can 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, utilities are included to simplify large-scale computing with the ScaLAPACK library. Interface modules to ScaLAPACK give users easy access to MPI-enabled algorithms, and allow them to write parallel code without needing to be experts in parallel programming. LAPACK integration provides easy access to SMP-enabled algorithms and allows users to write parallel code without needing to know parallel programming. CUBLAS integration allows developers to leverage NVIDIA GPU hardware through familiar function calls for many level 3 and level 2 BLAS routines. For a complete list of the algorithms included in the IMSL Fortran Library, please see the function catalog.
Powerful interface modules
The IMSL Fortran Library includes powerful and flexible interface modules allowing developers to be more productive. For all applicable routines, the modules accomplish the following:
- Allows users to utilize the fast, convenient optional arguments of the modern Fortran syntax for 100 percent 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
Complete backward compatibility
For over four decades, the IMSL Fortran Library has maintained full backward compatibility with all previous versions of the library. No code modifications are required for existing applications that rely on previous versions of the IMSL Fortran Library. Calls to routines from the IMSL FORTRAN 77 Library with the F77 syntax continue to function.
Four decades of experience in testing numerical algorithms for quality and performance across an extensive range of the latest compilers and environments is embodied in the IMSL product. Rogue Wave works with compiler partners and hardware partners to ensure a high degree of reliability and performance optimization. This experience has allowed Rogue Wave 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 user to rely on the numerical analysis functionality and focus their bandwidth on their application development and testing.
The IMSL Fortran 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.
IMSL Fortran 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 for high performance computing (HPC).
The IMSL Fortran library provides a number of MPI-enabled routines with an MPI-enhanced interface that provides:
- Computational control of the server node
- Scalability of computational resources
- Automatic processor prioritization
- Self-scheduling algorithm to keep processors continuously active
- Box data type application
- Computational integrity
- Dynamic error processing
- Homogeneous and heterogeneous network functionality
- Use of descriptive names and generic interfaces
- A suite of testing and benchmark software