IMSL(R) C Numerical Library

This README file explains how to install the IMSL C Numerical Library, and it provides additional important updated product information.

The IMSL C Numerical Library is comprised of the products IMSL C Math Library and IMSL C Stat Library. In this document the IMSL C Math Library and IMSL C Stat Library will be referred to collectively as the IMSL C Numerical Library.

News, Notes, and Addenda

Installation Instructions


Compiling and Linking Applications

Use of the environment variables set via the cnlsetup.csh and (Linux) or cnlsetup.bat (Windows) files is recommended to ease the creation of IMSL C Numerical Library applications. Use the supported C compiler with the desired link options to create the program.

The following command will compile and link an application program:

In the above command, LINK_CNL can easily be replaced by any of the LINK_CNL* variables. Refer to "Environment Variables" for a list of the available LINK_CNL* options.

Using CNL with Visual Studio

  1. Initialize environment and start the Microsoft Visual Studio Developer Environment.
  2. If you have not already defined a Solution Workspace for your application, you must do so before proceeding.
  3. Set x64 Project Settings
  4. Add Source Code to the Project
  5. Add the Include Files Directory
  6. Choose compiler. Right click on the project in Solution Explorer. Compiler can be selected/changed by clicking on Intel Compiler and selecting 'Use Intel C++', 'Use Intel C++ Compiler Classic' or 'Use Visual C++', depending on the installed version of IMSL C Numerical Library.
  7. Link the IMSL Numerical Library.
  8. You should now be ready to build the Solution and run the program. From the Microsoft Visual Studio tabs choose Build -> Build Solution. To run the program, choose Debug -> Start Without Debugging. Microsoft Visual Studio will create a console window displaying the output
  9. NOTE: These instrucions were generated with Visual Studio 2019. Other versions may have slightly different steps.

Performance Enhancements

Single Precision Name of IMSL Function LAPACK Routines used when Linking with High Performance Libraries
imsl_c_eig_herm ?heevx_, ?=c/z
imsl_c_geneig ?ggev_, ?=c/z
imsl_c_lin_sol_gen ?getrs_, ?getrf_, ?gecon_, ?getri_, ?=c/z
imsl_c_lin_sol_gen_band ?gbcon_, ?gbtrf_, ?gbtrs_, ?=c/z
imsl_c_lin_sol_posdef ?potri_, ?potrf_, ?pocon_, ?potrs_, ?=c/z
imsl_c_lin_sol_posdef_band ?pbcon_, ?pbtrf_, ?pbtrs_, ?=c/z
imsl_c_lin_svd_gen ?gesvd_, ?gesdd_, ?=c/z
imsl_f_bounded_least_squares ?ormqr_, ?=s/d
imsl_f_eig_gen ?geevx_, ?=s/d
imsl_f_eig_sym ?syevx_, ?=s/d
imsls_f_eig_sym ?syevx_, ?=s/d
imsl_f_eig_symgen ?sygv_, ?=s/d
imsls_f_factor_analysis ?syevx_, ?=s/d
imsl_f_geneig ?ggev_, ?=s/d
imsl_f_lin_least_squares_gen ?orgqr_, ?geqrf_, ?geqp3_,?ormqr_, ?trsm_, ?=s/d
imsl_f_lin_sol_gen ?getrs_, ?getrf_, ?gecon_, ?getri_, ?=s/d
imsl_f_lin_sol_gen_band ?gbcon_, ?gbtrf_, ?gbtrs_, ?=s/d
imsl_f_lin_sol_posdef ?pocon_, ?potrf_, ?potri_, ?=s/d
imsl_f_lin_svd_gen ?gesvd_, ?gesdd_, ?=s/d
imsl_f_nonlin_least_squares ?ormqr_, ?=s/d
imsl_f_pde_1d_mg_mgr ?gbtrf_, ?=s/d
imsls_f_hw_time_series ?ormqr_, ?=s/d
imsls_f_logistic_regression ?pocon_, ?potrf_, ?potri_, ?=s/d
imsls_f_logistic_reg_predict ?pocon_, ?potrf_, ?potri_, ?=s/d


Anderson et al.

Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, (1999), LAPACK Users Guide, Third Edition, SIAM, Philadelphia.

Compile Source Code

Users of cnl-<VER>-<ENV> or cnl-<VER>-<ENV>_src.exe installers only, follow these instructions to compile source code