IMSL(R) Fortran Numerical Library: Change Log
If you have problems installing/using any product, contact IMSL Customer Support. The Customer Support group researches and answers your questions about all IMSL products. Contact information can be found in the README file located in this directory.
For release dates and maintenance and support schedules, see Rogue Wave Product Lifecycle Information.
2024.1
- Improvements
- Introduced support for Intel oneAPI IFX compiler.
2022.1
- Improvements
- Upgraded internally used LAPACK version from 3.2.2 to newest version 3.10.0.
- Math/Library
- Chapter 2: Eigensystem Analysis
ARPACK_SVD
:
- Removed
ARPACK_Regular_Inverse
from the list of feasible values for optional argument CATEGORY
. Since ARPACK_Regular
is now the only remaining feasible value, the optional argument CATEGORY
was removed from the documentation as well. For backward compatibility reasons, ARPACK_SVD
can still be called with this optional argument.
- Chapter 7: Nonlinear Equations
NEQBF
:
- Corrected internal error handling for the case of infeasible
IPARAM
or RPARAM
values.
NEQBJ
:
- Corrected internal error handling for the case of infeasible
IPARAM
or RPARAM
values.
- Chapter 10: Linear Algebra Operators and Generic Functions
.ix.
, .xi.
, COND
:
- Upgraded internally used SuperLU version from 3.0 to newest version 5.3.0.
2021.0.0
- Announcements
- The environment variable
FNL_LICENSE_NUMBER
has been deprecated and is no longer in use.
2020.0.0
- Improvements
- Corrected behavior of installer incorrectly modifying the permissions of the specified install directory.
2018.0.2
- Improvements
- Corrected behavior of installing into a non-default directory.
- Installer now treats the library as a non-editable component of the installation.
2018.0.1
- Improvements
- Added support for unattended installation of the product.
2018.0.0
- Announcements
- Notice to customers using Oracle Solaris platforms: IMSL Fortran 2018 will be the last planned version to support Oracle Solaris platforms. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement.
- Notice to customers using the IMSL Fortran
CUBLAS_LIBRARY
module: IMSL Fortran 2018 will not support the NVIDIA CUDA CUBLAS Library. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement.
- IMSL is transitioning toward online only documentation. Currently documentation is available with the installation of the product and on our website at IMSL Fortran Documentation. In future releases documentation will be available only on the web.
- IMSL has transitioned to the use of a Change Log documenting the running list of all changes that have occurred to the product over the course of multiple releases, rather than distributing a new file containing notes that are specific to the particular release.
- the MKL-enabled FNL libs are always installed and enabled by default. To disable MKL, users must switch to using the
LINK_*_IMSL
environment variables as described in the Link Options
section of the product README file.
- Additions
- Math/Library
- Chapter 8: Optimization
LIN_CON_TRUST_REGION
:
- Minimizes a function of n variables subject to linear constraints using a derivative-free, interpolation-based trust-region method.
- Improvements
- Math/Library
- Chapter 1: Linear Systems
GMRES
:
- Added printing functionality for intermediate solutions at the end of each
GMRES
cycle.
- Fixed infinite loop problem that occurred if the starting point for the iteration is identical to the solution of the linear system
A*x=b
.
LSVRR
, LSVCR
:
- Corrected sign in formula for shift calculation.
- Chapter 2: Eigensystem Analysis
EVCRH
:
- Modified document example.
- Chapter 3: Interpolation and Approximation
SURFND
:
- Added a check that the elements in each row of
XDATA
are strictly monotonic.
- Chapter 8: Optimization
BCPOL
:
- Corrected descriptions of optional arguments
FTOL
and MAXFCN
.
- Corrected formula under criteria 2 of the Description.
DENSE_LP
:
- Corrected behavior for constraints with constraint type 4 (ignore constraint).
- Stat/Library
- Chapter 2: Regression
PLSR
:
- Corrected first dimension of an internal array related to input argument
PRESS
.
- Corrected internal computation of the number of dependent and predictor variables.
- The condition
2 <= K <= NOBS
, K
the number of folds, is now always tested.
- Added tests that check for the correct extents of the output arrays.
7.1.1
- Announcements
- Additions
- Improvements
- Math/Library
- Chapter 8: Optimization
BCPOL
:
- Optional argument
XCPLX
added allowing users to specify the initial complex points.
- Optional argument
REFLCOEF
added allowing user to specify the reflection coefficient.
- Optional argument
EXPNCOEF
added allowing user to specify the expansion coefficient.
- Optional argument
CNTRCOEF
added allowing user to specify the contraction coefficient.
7.1.0
- Announcements
- License management has been removed
- Additions
- Improvements
- Math/Library
- Chapter 1: Linear Systems
LCLSQ
:
- The matrix columns for fixed variables are not used any longer in computing a matrix norm.
LFSXG
:
- Updated permutation test to avoid overflow.
LFSZG
:
- Updated permutation test to avoid overflow.
LOFCF
:
- Corrected the returned
pvalue
argument.
LSACG
:
- Made computation of the condition number the default when used with the default values of Integer Option 17.
LSLCG
:
- Made computation of the condition number the default when used with the default values of Integer Option 17.
LSLXG
/L2LXG
:
- Improved workspace documentation.
LSVCR
:
- Improved Fortran 90 interface.
LSVRR
:
- Improved Fortran 90 interface.
- Corrected
LSVRR
ScaLAPACK implementation so that it can handle a wider range of problems. Updated associated documentation.
PARALLEL_BOUNDED_LSQ
:
- Updated example 1 and associated documentation.
- Added example 2 output to documentation.
RNKSM
:
- Use of a correction term has been modified so that negative p-values do not occur.
- Chapter 5: Differential Equations
IVOAM
:
- Modified the default initial stepsize to avoid an "initial step length too small" error message.
- Changed definition of optional argument EQNERR when a value of zero is specified.
IVPAG
:
- Corrected a typographical error in manual example 4.
- Chapter 6: Tranforms
c_fast_dft
:
- Added High Performance icons to the documentation. These icons specify that the routines leverage vendor-supplied libraries.
c_fast_2dft
:
- Added High Performance icons to the documentation. These icons specify that the routines leverage vendor-supplied libraries.
c_fast_3dft
:
- Added High Performance icons to the documentation. These icons specify that the routines leverage vendor-supplied libraries.
- Chapter 8: Optimization
BCONF
:
- Initialized the elements of an array to 0.
DENSE_LP
:
- Initialized an internally used variable.
- Corrected the size of internally used arrays.
NNLPF
:
- Modified so that infeasible initial guesses are projected into the set of bound constraints.
NNLPG
:
- Correct the optional argument order in the documentation.
- Modified so that infeasible initial guesses are projected into the set of bound constraints.
QPROG
:
- Avoided infinite loops by not allowing iterative refinement to proceed if the objective function could not be improved upon because of numerical issues.
READ_MPS
:
- Computation of upper bounds for type
G
(Greater than or equal) constraints with entries in the RANGES section was corrected.
SLPRS
:
- Corrected documentation of workspace arguments
IPARAM(7)
, IPARAM(8)
, LW
, and LIW
.
- Chapter 10: Linear Algebra Operators and Generic Functions
DET
:
- Improve the displayed error messages.
- Chapter 11: Utilities
RAND_GEN
:
- Removed manual example 4.
- Stat/Library
- Chapter 8: Time Series Analysis and Forecasting
MAX_ARMA
:
- Added tests to check if the gradient of the current iterate is numerically zero.
NSBJF
:
- Corrected an error in the documentation example.
REG_ARIMA
:
- Corrected the size requirement for the optional argument
XLEAD
.
- Chapter 10: Discriminant Analysis
DSCRM
:
- Use of optional arguments
PRIOR
, NI
, XMEAN
is now mandatory for certain IDO
values.
- Corrected result when
IDO=6
.
- Added an example to the documentation to demonstrate the use of the routine when
IDO=4
.
- Clarified the description of output argument
COEF
.
- Corrected the
XMEAN
description.
- Chapter 17: Probability Distribution Functions and Inverses
MLE
:
- Swapped the starting value assignments and corrected the ratio calculation.
CHIDF
:
- Corrected the example output.
- Math/Library Special Functions
- Chapter 6: Bessel Functions
CBYS
:
- Modified to implement the Yousif and Melka (Y&M) approximation of Bessel Function
Y(xnu,z=x+i*y)
when either x
or y
has an absolute value which is near zero and generalized to allow argument properties:
xnu > 1
and output-array-size < (order + 1)
;
xnu real > -1.
;
x
and/or y
can be negative. Implementation of Y&M algorithm insures that Im(Y(xnu,z)) = 0
when Im(z) = 0
and Re(z) > 0
.
CBJS
:
- Modified to implement the Yousif and Melka (Y&M) approximation of Bessel Function
J(xnu,z=x+i*y)
when either x
or y
has an absolute value which is near zero and generalized to allow argument properties:
xnu > 1
and output-array-size < (order + 1)
;
xnu real > -1.
;
x
and/or y
can be negative.
7.0.0
- Announcements
- Users have the option of using Basic Linear Algebra Subroutines (BLAS) which take advantage of the computational power of NVIDIA graphic cards through the use of the NVIDIA CUDA Toolkit.
- Integration of vendor supplied FFTs into IMSL code.
- Online documentation is provided as HTML files in addition to Adobe Acrobat PDF files.
- The ARPACK package is incorporated in the product with a Fortran 2003 interface.
- By default the LINK environment variables link with the supported high performance library. Refer to the description of the LINK options in the accompanying README file.
- Additions
- Math/Library
- Chapter 2: Eigensystem Analysis
ARPACK_SYMMETRIC
:
- Computes the eigenvalues and eigenvectors of a generalized real symmetric eigenvalue problem.
ARPACK_SVD
:
- Computes the singular values and the left and right singular vectors of a real rectangular matrix.
ARPACK_NONSYMMETRIC
:
- Computes the eigenvalues and eigenvectors of a generalized eigenvalue problem.
ARPACK_COMPLEX
:
- Computes the eigenvalues and eigenvectors of a generalized eigenvalue problem.
- Chapter 3: Interpolation and Approximation
SURFND
:
- Multidimensional interpolation and differentiation.
- Chapter 4: Integration and Differentiation
QDAG1D
:
- Integrates a function with a possible internal or endpoint singularity.
QDAG2D
:
- Integrates a function of two variables with a possible internal or end point singularity.
QDAG3D
:
- Integrates a function of three variables with a possible internal or endpoint singularity.
- Chapter 5: Differential Equations
DAESL
:
- Solves a first order differential-algebraic system of equations,
g(t, y, y') = 0
, with optional additional constraints and user-defined linear system solver.
IVOAM
:
- Solves an initial-value problem for a system of ordinary differential equations of order one or two using a variable order Adams method.
MMOLCH
:
- Solves a system of partial differential equations of the form
ut = f(x, t, u, ux, uxx)
using the method of lines. The solution is represented with cubic Hermite polynomials.
FEYNMAN_KAC
:
- Solves the generalized Feynman-Kac PDE on a rectangular grid using a finite element Galerkin method. Initial and boundary conditions are provided. The solution is represented by a series of C2 Hermite quintic splines.
HQSVAL
:
- This rank-1 array function evaluates a Hermite quintic spline or one of its derivatives for an array of input points. In particular, it computes solution values for the Feynman-Kac PDE handled by routine
FEYNMAN_KAC
.
- Chapter 7: Nonlinear Equations
ZUNI
:
- Finds a zero of a real univariate function.
- Chapter 8: Optimization
DDJAC
:
- Approximates the Jacobian of
M
functions in N
unknowns using divided differences.
TRAN
:
- Solves a transportation problem.
- Chapter 9: Basic Vector/Matrix Operations
SSPMV/DSPMV
:
- Performs the matrix-vector operation
y := alpha*A*x + beta*y
where alpha
and beta
are scalars, x
and y
are n
element vectors and A
is an n
by n
symmetric matrix, supplied in packed form.
SSPR/DSPR
:
- Performs the symmetric rank 1 operation
A := alpha*x*x' + A
where alpha
is a real scalar, x is an n
element vector and A
is an n
by n
symmetric matrix, supplied in packed form.
SSPR2/DSPR2
:
- Performs the symmetric rank 2 operation
A := alpha*x*y' + alpha*y*x' + A
where alpha
is a scalar, x
and y
are n
element vectors and A
is an n
by n
symmetric matrix, supplied in packed form.
STPMV/DTPMV
:
- Performs one of the matrix-vector operations
x := A*x, or x := A'*x
where x
is an n
element vector and A
is an n
by n
unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
STPSV/DTPSV
:
- Solves one of the systems of equations
A*x = b
, or A'*x = b
where b
and x
are n
element vectors and A is an n
by n
unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
CHPMV/ZHPMV
:
- Performs the matrix-vector operation
y := alpha*A*x + beta*y
where alpha
and beta
are scalars, x
and y
are n
element vectors and A is an n
by n
hermitian matrix, supplied in packed form.
CHPR/ZHPR
:
- Performs the hermitian rank 1 operation
A := alpha*x*conjg( x' ) + A
where alpha
is a real scalar, x
is an n
element vector and A
is an n
by n
hermitian matrix, supplied in packed form.
CHPR2/ZHPR2
:
- Performs the hermitian rank 2 operation
A := alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A
where alpha
is a scalar, x
and y
are n
element vectors and A
is an n
by n
hermitian matrix, supplied in packed form.
CTPMV/ZTPMV
:
- Performs one of the matrix-vector operations
x := A*x
, or x := A'*x
, or x := conjg( A' )*x
where x
is an n
element vector and A
is an n
by n
unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
CTPSV/ZTPSV
:
- Solves one of the systems of equations
A*x = b
, or A'*x = b
, or conjg( A' )*x = b
where b
and x
are n
element vectors and A
is an n
by n
unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
- Math/Library Special Functions
- Chapter 4: Gamma Function and Related Functions
PSI1
:
- Evaluates the second derivative of the log gamma function.
- Chapter 11: Probability Distribution Functions and Inverses
BETNDF
:
- Evaluates the noncentral beta cumulative distribution function (CDF).
BETNIN
:
- Evaluates the inverse of the noncentral beta cumulative distribution function (CDF).
BETNPR
:
- Evaluates the noncentral beta probability density function.
FNDF
:
- Evaluates the noncentral F cumulative distribution function (CDF).
FNPR
:
- Evaluates the noncentral F probability density function.
FNIN
:
- Evaluates the inverse of the noncentral F cumulative distribution function (CDF).
TNPR
:
- Evaluates the noncentral Student's t probability density function.
CSNPR
:
- Evaluates the noncentral chi-squared probability density function.
- Stat/Library
- Chapter 2: Regression
PLSR
:
- Performs partial least squares regression for one or more response variables and one or more predictor variables.
- Chapter 7: Test of Goodness of Fit
ADNRM
:
- Performs an Anderson-Darling test for normality.
CVMNRM
:
- Performs a Cramer-von Mises test for normality.
- Chapter 8: Time Series and Forecasting
REG_ARIMA
:
- Fits a univariate, non-seasonal ARIMA time series model with the inclusion of one or more regression variables.
TS_OUTLIER_IDENTIFICATION
:
- Detects and determines outliers and simultaneously estimates the model parameters in a time series whose underlying outlier free series follows a general seasonal or nonseasonal ARMA model.
TS_OUTLIER_FORECAST
:
- Computes forecasts, associated probability limits and weights for an outlier contaminated time series.
AUTO_ARIMA
:
- Automatically identifies time series outliers, determines parameters of a multiplicative seasonal ARIMA model and produces forecasts that incorporate the effects of outliers whose effects persist beyond the end of the series.
AUTO_PARM
:
- Estimates structural breaks in non-stationary univariate time series.
- Chapter 17: Probability Distribution Functions and Inverses
BETNDF
:
- This function evaluates the noncentral beta cumulative distribution function (CDF).
BETNIN
:
- This function evaluates the inverse of the noncentral beta cumulative distribution function (CDF).
BETNPR
:
- This function evaluates the noncentral beta probability density function.
FNDF
:
- This function evaluates the noncentral F cumulative distribution function (CDF).
FNPR
:
- This function evaluates the noncentral F probability density function.
FNIN
:
- This function evaluates the inverse of the noncentral F cumulative distribution function (CDF).
TNPR
:
- This function evaluates the noncentral Student's t probability density function.
CSNPR
:
- This function evaluates the noncentral chi-squared probability density function.
- Chapter 18: Random Number Generation
RNMVGC
:
- Given a Cholesky factorization of a correlation matrix, generates pseudorandom numbers from a Gaussian Copula distribution.
RNMVTC
:
- Given a Cholesky factorization of a correlation matrix, generates pseudorandom numbers from a Student's T Copula distribution.
CANCOR
:
- Given an input array of deviate values, generates a canonical correlation array.
MLE
:
- Calculates maximum likelihood estimates for the parameters of one of several univariate probability distributions.
- Improvements
- Math/Library
- Chapter 1: Eigensystem Analysis
C_LIN_SOL_LSQ
:
- Corrected the calculation of the sign for the imaginary part.
- Chapter 3: Interpolation and Approximation
CSIEZ
:
- Modified so that the reordering of the XVEC argument does not occur.
SURF
:
- Resolved conflicting answers between IMSL v5 and v6.
- Chapter 4: Integration and Differentiation
QDAGI
:
- Added a comment to the Comments section of the documentation explaining transformation limitations.
- Chapter 6: Transforms
FFT2B
:
- Corrected code so as to yield correct results when input array
COEF
is 1 by N
.
- Chapter 8: Optimization
QPROG
:
- Added optional arguments
MAXITN
and SMALL
which allows users to set the maximum iterations allowed and the convergence criteria of a constraint violation.
- The default values for
MAXITN
and SMALL
have been changed. These values were not previously accessible to the user.
NNLPF
:
- Added optional arguments
LGMULT
and CONSTRES
providing access to the Lagrange Multipliers and Constraint Residuals respectively.
- Changed an internal COMMON block name so
NNLPF
and NNLPG
do not use common blocks with the same name.
NNLPG
:
- Added optional arguments
LGMULT
and CONSTRES
providing access to the Lagrange Multipliers and Constraint Residuals respectively.
UNLSF
:
- Code modified to prevent infinite looping. Also effects
BCLSF
, BCLSJ
, NSLSE
, and UNLSJ
.
- Chapter 10: Linear Algebra Operators and Generic Functions
.DET.
:
- Resolved wrong sign issue in the imaginary part of the return value.
.IX.
:
- Recompilation with newer compiler resolved segmentation fault issue ocurring on some environments.
SPARSE_LINEAR_OPERATORS
:
- Improved performance and accuracy of optional (
hbc_sparse%options%accumulate
) sparse matrix accumulation algorithm.
- Math/Library Special Functions
- Chapter 3: Exponential Integrals and Related Functions
CI
:
- Corrected an equation in the documentation.
- Chapter 4: Gamma Function and Related Functions
BETAI
:
- Complementary probabilities are used to calculate
BETAI
only when a direct CDF calculation demonstrates that the BETAI
value is in the extreme right tail (i.e. very close to 1) to improve accuracy.
- Chapter 11: Probability Distribution Functions and Inverses
CHIDF
:
- Added optional argument
COMPLEMENT
to indicate the complement of the distribution function is to be determined.
- Modified the algorithm to increase accuracy.
CHIIN
:
- Modified the algorithm to increase accuracy.
CSNDF
:
- Modified the algorithm to increase accuracy.
FDF
:
- Added optional argument
COMPLEMENT
to indicate the complement of the distribution function is to be determined.
- Modified the algorithm to increase accuracy.
TDF
:
- Added optional argument
COMPLEMENT
to indicate the complement of the distribution function is to be determined.
- Modified the algorithm to increase accuracy.
- Stat/Library
- Chapter 2: Regression
RNLIN
:
- Modified code to prevent possible infinite looping.
- Chapter 5: Categorical and Discrete Data Analysis
CTGLM
:
- Changed the default allocation size of optional argument
CLVAL
to adjust according to values of NCLVAR
.
- Added documentation to clarify the differences in log-likelihood values between models.
- Chapter 7: Tests of Goodness of Fit and Randomness
KSTWO
:
- Corrected an equation in the documentation.
- Chapter 8: Time Series Analysis and Forecasting
AUTO_UNI_AR
:
- Reduced memory requirements.
MAX_ARMA
:
- Added error check to confirm that at least one of the arguments,
PAR
and PMA
, has a length greater than 0.
- Added optional arguments
WMEAN
(an estimate of the mean), CNST
(an estimate of a constant term), F (-2*log-likelihood)
and EWS
(an array of residuals).
NSBJF
:
- Corrected an equation in the documentation.
- Chapter 17: Probability Distribution Functions and Inverses
CHIDF
:
- Added optional argument
COMPLEMENT
to indicate the complement of the distribution function is to be determined.
- Modified the algorithm to increase accuracy.
CHIIN
:
- Modified the algorithm to increase accuracy.
CSNDF
:
- Modified the algorithm to increase accuracy.
FDF
:
- Added optional argument
COMPLEMENT
to indicate the complement of the distribution function is to be determined.
- Modified the algorithm to increase accuracy.
TDF
:
- Added optional argument
COMPLEMENT
to indicate the complement of the distribution function is to be determined.
- Modified the algorithm to increase accuracy.
- Chapter 19: Utilities
SROWR
:
- Corrected sort when
NCOL
is not equal to LDX
.
- Chapter 20: Mathematical Support
CHFAC
:
- Corrected
TOL
argument in interface to be double precision.
6.0.0
- Announcements
- The license management software which IMSL Fortran Numerical Library uses has been upgraded to FLEXnet Licensing. FLEXlm 9.2 was used for the previous release. FLEXnet Licensing is the next generation of FLEXlm. The user should not see any difference in license management behavior.
- The directory structure for IMSL Fortran Numerical Library has been updated.
- The IMSL Fortran Numerical Library is thread-safe.
- The IMSL Fortran Numerical Library leverages ScaLAPACK for improved performance.
- The environment variable
LM_LICENSE_FILE
, which is used by FLEXlm to locate the license file, has been changed to be a directory name. Therefore users are no longer restricted to using the name specified by the LM_LICENSE_FILE
environment variable. Any name ending with a .lic
filename extension, which resides in the directory specified by LM_LICENSE_FILE
, will be searched for the correct FEATURE name.
- Additions
- Math/Library
- Chapter 8: Optimization
dense_lp
:
- Solves a dense linear programming problem.
mps_free
:
- Deallocates the space allocated for the IMSL derived
types_MPS
. This routine is usually used in conjunction with READ_MPS.
read_mps
- Reads an MPS file containing a linear programming problem or a quadratic programming problem.
- Chapter 10: Linear Algebra and Generic Functions
- OPERATORS
.X.
, .TX.
, .XT.
, .XH.
, .T.
, .H.
, .I.
, .XI.
- Added sparse arguments
- Chapter 11: Utilities
MPI_SETUP
:
- Initializes or finalizes MPI. This existed in previous releases but was not documented.
RNGE32
:
- Retrieves the current table used in the 32-bit Mersenne Twister generator.
RNIN32
:
- Initializes the 32-bit Mersenne Twister generator using an array.
RNSE32
:
- Sets the current table used in the 32-bit Mersenne Twister generator.
RNGE64
:
- Retrieves the current table used in the 64-bit Mersenne Twister generator.
RNIN64
:
- Initializes the 64-bit Mersenne Twister generator using an array.
RNSE64
:
- Sets the current table used in the 64-bit Mersenne Twister generator.
ScaLAPACK_EXIT
:
- This routine exits ScaLAPACK mode for the IMSL Library routines. All processors in the
BLACS
context call the routine.
ScaLAPACK_GETDIM
:
- This routine calculates the row and column dimensions of a local distributed array based on the size of the array to be distributed and the row and column blocking factors to be used.
ScaLAPACK_MAP
:
- This routine maps array data from a global array to local arrays in the two-dimensional block-cyclic form required by ScaLAPACK routines.
ScaLAPACK_SETUP
:
- This routine sets up a processor grid and calculates default values for various entities to be used in mapping a global array to a processor grid.
ScaLAPACK_UNMAP
:
- This routine unmaps array data from local distributed arrays to a global array. The data in the local arrays must have been stored in the two-dimensional block-cyclic form required by ScaLAPACK routines.
- Math/Library Special Functions
- Chapter 8: Airy Functions
CAI
:
- Evaluates the Airy function of the first kind for complex arguments.
CBI
:
- Evaluates the Airy function of the second kind for complex arguments.
CAID
:
- Evaluates the derivative of the Airy function of the first kind for complex arguments.
CBID
:
- Evaluates the derivative of the Airy function of the second kind for complex arguments.
- Chapter 11: Probability Distribution Functions and Inverses
ALNDF
:
- Evaluates the lognormal cumulative probability distribution function.
ALNIN
:
- Evaluates the inverse of the lognormal cumulative probability distribution function.
ALNPR
:
- Evaluates the lognormal probability density function.
ANORPR
:
- Evaluates the normal probability density function.
BETPR
:
- Evaluates the beta probability density function.
CHIPR
:
- Evaluates the chi-squared probability density function.
EXPDF
:
- Evaluates the exponential cumulative distribution function.
EXPIN
:
- Evaluates the inverse of the exponential cumulative distribution function.
EXPPR
:
- Evaluates the exponential probability density function.
EXVDF
:
- Evaluates the extreme value cumulative distribution function.
EXVIN
:
- Evaluates the inverse of the extreme value cumulative distribution function.
EXVPR
:
- Evaluates the extreme value probability density function.
FPR
:
- Evaluates the F probability density function.
GAMPR
:
- Evaluates the gamma probability density function.
GEODF
:
- Evaluates the discrete geometric cumulative probability distribution function.
GEOIN
:
- Evaluates the inverse of the geometric cumulative probability distribution function.
GEOPR
:
- Evaluates the discrete geometric probability density function.
RALDF
:
- Evaluates the Rayleigh cumulative distribution function.
RALIN
:
- Evaluates the inverse of the Rayleigh cumulative distribution function.
RALPR
:
- Evaluates the Rayleigh probability density function.
TPR
:
- Evaluates the Student's
t
probability density function.
UNDDF
:
- Evaluates the discrete uniform cumulative distribution function.
UNDF
:
- Evaluates the uniform cumulative distribution function.
UNDIN
:
- Evaluates the inverse of the discrete uniform cumulative distribution function.
UNDPR
:
- Evaluates the discrete uniform probability density function.
UNIN
:
- Evaluates the inverse of the uniform cumulative distribution function.
UNPR
:
- Evaluates the uniform probability density function.
WBLDF
:
- Evaluates the Weibull cumulative distribution function.
WBLIN
:
- Evaluates the inverse of the Weibull cumulative distribution function.
WBLPR
:
- Evaluates the Weibull probability density function.
- Stat/Library
- Chapter 8: Time Series Analysis and Forecasting
estimate_missing
:
- Estimates missing values in a time series.
seasonal_fit
:
- Determines an optimal differencing for seasonal adjustment of a time series.
- Chapter 17: Probability Distribution Functions and Inverses
ALNDF
:
- Evaluates the lognormal cumulative probability distribution function.
ALNIN
:
- Evaluates the inverse of the lognormal cumulative probability distribution function.
ALNPR
:
- Evaluates the lognormal probability density function.
ANORPR
:
- Evaluates the normal probability density function.
BETPR
:
- Evaluates the beta probability density function.
CHIPR
:
- Evaluates the chi-squared probability density function.
EXPDF
:
- Evaluates the exponential cumulative distribution function.
EXPIN
:
- Evaluates the inverse of the exponential cumulative distribution function.
EXPPR
:
- Evaluates the exponential probability density function.
EXVDF
:
- Evaluates the extreme value cumulative distribution function.
EXVIN
:
- Evaluates the inverse of the extreme value cumulative distribution function.
EXVPR
:
- Evaluates the extreme value probability density function.
FPR
:
- Evaluates the
F
probability density function.
GAMPR
:
- Evaluates the gamma probability density function.
GEODF
:
- Evaluates the discrete geometric cumulative probability distribution function.
GEOIN
:
- Evaluates the inverse of the geometric cumulative probability distribution function.
GEOPR
:
- Evaluates the discrete geometric probability density function.
RALDF
:
- Evaluates the Rayleigh cumulative distribution function.
RALIN
:
- Evaluates the inverse of the Rayleigh cumulative distribution function.
RALPR
:
- Evaluates the Rayleigh probability density function.
TPR
:
- Evaluates the Student's
t
probability density function.
UNDDF
:
- Evaluates the discrete uniform cumulative distribution function.
UNDF
:
- Evaluates the uniform cumulative distribution function.
UNDIN
:
- Evaluates the inverse of the discrete uniform cumulative distribution function.
UNDPR
:
- Evaluates the discrete uniform probability density function.
UNIN
:
- Evaluates the inverse of the uniform cumulative distribution function.
UNPR
:
- Evaluates the uniform probability density function.
WBLDF
:
- Evaluates the Weibull cumulative distribution function.
WBLIN
:
- Evaluates the inverse of the Weibull cumulative distribution function.
WBLPR
:
- Evaluates the Weibull probability density function.
- Chapter 18: Random Number Generation
RNGE32
:
- Retrieves the current table used in the 32-bit Mersenne Twister generator.
RNIN32
:
- Initializes the 32-bit Mersenne Twister generator using an array.
RNSE32
:
- Sets the current table used in the 32-bit Mersenne Twister generator.
RNGE64
:
- Retrieves the current table used in the 64-bit Mersenne Twister generator.
RNIN64
:
- Initializes the 64-bit Mersenne Twister generator using an array.
RNSE64
:
- Sets the current table used in the 64-bit Mersenne Twister generator.
RNEXV
:
- Generates pseudorandom numbers from an extreme value distribution.
RNFDF
:
- Generates pseudorandom numbers from the
F
distribution.
RNRAL
:
- Generates pseudorandom numbers from a Rayleigh distribution.
- Improvements
- Math/Library
- Miscellaneous
umpol_int
(interface module)
- Corrected intent on the optional arguments.
cond_int
(interface module)
- Added optional argument
norm_choice
to calculate the condition number using 1-norm
, 2-norm
, and inf-norm
. linear_operators
(interface module)
- Added sparse data type as valid arguments.
- Chapter 1: Linear Systems
lchrg
:
LCHRG
documentation specified that the input matrix must be positive semi-definite, when, in fact, it must be positive definite. The error message was changed to reflect this.
lftrb
:
- Changed the way A is copied to FAC so that A and FAC can share the same storage. This correction was necessary for the LAPACK algorithm only.
lqrsl
:
- Increased the amount of workspace used. Fixed bug in using
wk
for computing X.
lsqrr
:
- Initialize data when using the LAPACK algorithm.
lsvcr
:
- Initialize data when using the LAPACK algorithm.
lsvrr
:
- Changed
jobu
option to return "All" left or right singular vectors even when even when m is not equal to n when using the LAPACK algorithm.
- Chapter 5: Differential Equations
daspg
:
- Correct the way that
atol
and rtol
are handled when input as arrays.
sleig
:
- Corrected code so that correct data is printed witherror messages.
- Chapter 8: Optimization
dlprs
:
- Added code to avoid the situation when
n=0
which causes an invalid array access.
lconf
:
- Moved the location where the objective function value at the optimal point was being saved. Previously, it was possible to get an objective function value at a point other than the optimal point.
lcong
:
- Moved the location where the objective function value at the optimal point was being saved. Previously, it was possible to get an objective function value at a point other than the optimal point.
min_uncon_multivar
:
- Added a check to avoid a possible divide by zero. If the divide by zero occurs the code would end up in an infinite loop because of the presence of NaNs.
nnlpf
:
- Allocate more memory to prevent access violation.
nnlpg
:
- Allocate more memory to prevent access violation.
umpol
:
- Remove warning message for s less than zero. Change application of random number when
s=0.0
and xguess<1.0
.
- Chapter 11: Utilities
verml
- Use environment variables instead of reading from a file to get info.
- Stat/Library
- Miscellaneous
c1f
:
- Changed how P values are calculated to avoid loss of precision for very small p-values. Used internally by numerous IMSL routines.
mp_types
(interface module):
- Added new types for
read_mps
.
mpi_setup_int
(interface module):
- Chapter 1: Basic Statistics
uvsta
:
- Added code to set
stat(15,:)
to stat(10,:)
when iwt = 0
. Before, it was not initialized.
- Chapter 2: Regression
rbest
:
- Code was added to prevent an out-of-bounds exception. Added a warning message in the case of an almost exact fit with Mallows CP criterion calculations. Initialized data which would sometimes cause a "Terminal Error".
- Chapter 8: Time Series Analysis and Forecasting
diff
:
- Corrected the case when
d=0
and s>0
was being handled.
nslse
:
- Corrected code which caused an infinite loop condition.
- Chapter 11: Cluster Analysis
cdist
:
- Initialize some variables which might cause the routine to erroneously report that workspace could not be allocated.
- Chapter 13: Survival Analysis, Life Testing and Reliability
phglm
:
- Avoid assigning data to areas which have not been allocated. This only happens in a "Terminal Error" condition.
- Chapter 17: Probability Distribution Functions and Inverses
bindf
:
- Changed input argument name from P to PIN and adjusted error message accordingly.
binpr
:
- Changed input argument name from P to PIN and adjusted error message accordingly.
tndf
:
- Change
TNDF
error code 2 (underflow) from TERMINAL to FATAL.
- Chapter 18: Random Number Generation
r1int
:
- Implement the new Mersenne Twister algorithm. Used to initialize the random number generator.
rnopt
:
- Add implementation of Mersenne Twister.
rnun
:
- Add implementation of Mersenne Twister.
rnunf
:
- Add implementation of Mersenne Twister.
- Chapter 19: Utilities
versl
:
- Use environment variables instead of reading from a file to get info.
5.0.1
- Announcements
- The IMSL Fortran Numerical Library, Version 5.01 leverages LAPACK for improved performance.
- Additions
- Improvements
gmres
:
- Additional error checking is implemented.
rnsef
:
- Corrected problem where the 1st element of input is not copied into the table.
surf
:
- Correct workspace allocation.
u3lsf
:
- Call
lqrsl
instead of u10sf to accomodate LAPACK.
u3lsj
:
- Call
lqrsl
instead of u10sf to accomodate LAPACK.
5.0.0
- Announcements
- The license management software which IMSL Fortran Numerical Library, Version 5.01 uses has been updated to FLEXlm 9.5. FLEXlm 6.1 was used for IMSL Fortran Library 5.0.
- Hyperjump capability in the documentation has been improved.
- Workspace allocation is now done using the Fortran 90 ALLOCATE/DEALLOCATE commands. In the past, workspace was allocated and deallocated in C.
- SMP capability using OpenMP directives was added to selected routines. Since this list is environment-specific, refer to the environment-specific README files for more information.
- Generic interface modules have been added to assist the user in calling IMSL Fortran Numerical Library routines. Among the advantages of using interface modules are the following:
- Identifies usage errors during compilation which otherwise would have resulted in a run-time error and would have been difficult to identify.
- Incorporates optional arguments making calling sequences of routines simpler.
- Makes the calls to IMSL routines precision independent. This allows for fewer required changes when switching data types within an application.
- Users wishing to use the generic interface modules with their current applications will most likely be required to change the calling sequences to the IMSL routines. Current applications DO NOT need to be modified if the interface modules are not used.
- Additions
FAURE_FREE
:
- Frees the structure containing information about the FAURE structure.
FAURE_INIT
:
- Shuffled FAURE sequence initialization.
FAURE_NEXT
:
- Computes a shuffled Faure sequence.
QMC
:
- Integrates a function over a hyper rectangle using a quasi-Monte Carlo method.
MAX_ARMA
:
- Exact maximum likelihood estimation of the parameters in a univariate ARMA (auto-regressive, moving average) time series model.
AUTO_UNI_AR
:
- Automatic selection and fitting of a univariate autoregressive time series model. The lag for the model is automatically selected using Akaike's Information Criterion (AIC). Estimates of the autoregressive parameters for the model with minimum AIC are calculated using method of moments or maximum likelihood.
AUTO_FPE_UNI_AR
:
- Automatic selection and fitting of a univariate autoregressive time series model using Akaike's FPE (Final Prediction Error) criteria. Estimates of the autoregressive parameters for the model with minimum FPE are calculated using the methodology described in Akaike, H., et. al (1979).
AUTO_MUL_AR
:
- Automatic selection and fitting of a multivariate autoregressive time series model. This is the multivariate version of
AUTO_UNI_AR
. The lag for the model is automatically selected using Akaike's Information Criterion (AIC).
AUTO_FPE_MUL_AR
:
- Automatic selection and fitting of a multivariate autoregressive time series model using Akaike's Final Prediction Error (FPE) criteria.
BAY_SEA
:
- Bayesian seasonal adjustment modeling. The model allows for a decomposition of a time series into trend, seasonal, and an error component.
GARCH
:
- Computes estimates of the parameters of a
GARCH(p,q)
model.
OPT_DES
:
- Optimal controller design based upon the methodology of Akaike and Nakagaw (1972). The routine allows for multiple channels for both the controlled and manipulated variables. The gain matrix is computed after automatically selecting the best autoregressive model using minimum multivariate final prediction error (MFPE).
ARMA_SPEC
:
- Calculates the rational power spectrum for an ARMA model. It also computes the rational power spectrum for AR and MA models by setting the number of MA or AR coefficients to zero, respectively.
NNLPF
:
- Solve a general nonlinear programming problem using a sequential equality quadratic programming method with an alternative usage of a fully regularized mixed constrained subprogram in case of non-regular constraints. It uses a slightly modified version of the Pantoja-Mayne update for the Hessian of the Lagrangian, variable dual scaling, and an improved Armijo-type stepsize algorithm.
NNLPG
:
- Solve a general nonlinear programming problem using a sequential equality quadratic programming method with an alternative usage of a fully regularized mixed constrained subprogram in case of non-regular constraints, and user-supplied gradient. It uses a slightly modified version of the Pantoja-Mayne update for the Hessian of the Lagrangian, variable dual scaling, and an improved Armijo-type stepsize algorithm.
- Improvements
anest
:
- Corrected problem with printing incorrect labels on means.
bclsf
:
- Moved initialization of
XSCALE
in b3lsf
to correct a problem where XGUESS
was returned without iterating.
bclsj
:
- Moved initialization of
XSCALE
in b3lsf
to correct a problem where XGUESS
was returned without iterating.
bcoah
:
- Corrected problem occurring when a new iterate point was on the boundary, which could potentially cause an infinite loop. Moved tests for maximum iterations and evaluations ahead of scaled gradient test.
bconf
:
- Modified
b5onf
to avoid a potential divide by 0.
bnrdf
:
- Replaced code for computation of Owen's T-function. This corrects a problem where
bnrdf
was incorrectly returning zero for some values of x
and y
.
bs1gd
:
- Removed code that caused resetting
ncoef
in the code.
bsies
:
- Added code to handle the large
x
case.
bsj1
:
- Changed double precision to return results which are consistent with single precision in the case where
x<0
.
cbis
:
- Changed computation method in cases when
|z|
is greater than 25. This change resolves problems with accuracy that were showing up with large z
.
cbins
:
- Fixed computations for large
X
. Added code to handle z
in quadrants 2 and 3, real z
, and large z
.
cdist
:
- Changed some internal computations in
m1ran
to use integer*8
to avoid a potential segmentation fault with large input arrays.
cpsec
:
- Implement using Fortran intrinsic.
csscv
:
- Use a more precise value for golden ratio.
csswp
:
- Removed check for
F
in range pi,-pi
.
cswed
:
- Added statement to restore
F
after scaling for option IFSCAL=1
.
cswep
:
- Removed check for
F
in range pi,-pi
.
ctepr
:
- Replaced
nrow
with ldtabl
in areas where TABLE(I, J)
was accessed linearly (table(I+(J-1)*nrow)
. ldtabl
is required in these cases. This fixes some problems with workspace corruption when LDTABL .gt. NROW
.
ctglm
:
- Modified centering adjustment in the computation of the first element of the covariance matrix. Also, to avoid failure with a segmentation fault for large input arrays, changed some internal computations in m1ran to use
integer*8
.
cttwo
:
- Replaced code for Fisher Exact Test
2-tail
probability computation.
dlprs
:
- Fixed a bug that occurred when an unrestricted nonbasic variable enters the basis. In such cases, it would never leave.
evlrg
:
- Changed check of subdiagonal element against tolerance rather than zero.
gamdf
:
- Changed initialization of CUT to amach(4) to improve accuracy.
ggues
:
- Changed some internal computations to use
integer*8
to avoid potential overflow.
hyppr
:
- Changed the return value from 1 to 0 in case
k > n.Eliminate K = M
special case.
iercd
:
- Added
iercd
to numerical_libraries
interface.
ivprk
:
- Corrected problem with computation of final step size. This occurred when trying to force the step size to a constant value by inputting an equal minimum and maximum step size (
HMIN
and HMAX
). The returned trial step size (HTRIAL
) was sometimes half the input step size.
kalmn
:
- Modified code to avoid potential divide by zero coming from
u8inf
.
kstwo
:
- Correct workspace problem.
lfsxg
:
- Modified to accept zero
NL
.
lfszg
:
- Modified to accept zero
NL
.
lftcg
:
- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.
lftdh
:
- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.
lftds
:
- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.
dlftrg
:
- Use an algorithm which takes advantage of the SMP capabilities in the Sun Performance Library.
lftxg
: - Replaced check for duplicate row,col
to avoid possible integer overflow.
lftzg
:
- Replaced check for duplicate
row,col
to avoid possible integer overflow.
lftxg
:
- Changed some internal computations to
integer*8
to avoid overflows.
lnfxd
:
- Avoid workspace allocation error.
lscxd
:
- Added code to set
invper
when ijob=0 or 1
.
lslxd
:
- Incorrectly outputs terminal error 10. Corrected initialization problem in
l6cxd
. Replaced check for duplicate row,col
to avoid possible integer overflow.
lslxg
:
- Replaced code to check for duplicate rows and columns, and changed some internal computations to use
integer*8
to avoid potential overflows.
lslzd
:
- Replaced check for duplicate
row,col
to avoid possible integer overflow.
lslzg
:
- Replaced check for duplicate
row,col
to avoid possible integer overflow.
msidv
:
- Correct logic which determines an error message.
nconf
:
- Allow the the number of allowable constraints to change from 500 to 10000.
ncong
:
- Allow the the number of allowable constraints to change from 500 to 10000.
neqnj
:
- Fixed a typo DLETA should be DELTA.
nslse
:
- Corrected problem with internal overflow.
pcgrc
:
- Correct typo that had
tri2
not having save attribute.
pde_1d_mg
:
- Cannot make a new call to
pde_1d_mg
after a fatal error. Added code to release workspace for D2SPG
in case of error condition.
qdawf
:
- Corrected dimension of
IWK
, which caused incorrect results in some problems.
qdder
:
- Corrected logic in
q3der
to locate index on grid closest to x.
qand
:
- Modified check for
maxfcn
.
rcovb
:
- Changed argument
covb
to intent(out)
in numerical_libraries interface.
rglm
:
- Results may vary depending upon column ordering. Corrected problem with internal call to
g1glm
.
rnnof
:
- Added to
numerical_libraries
interface.
rnun
:
- Use an algorithm which takes advantage of the machine architecture.
rnunf
:
- Added
rnunf
to numerical_libraries
interface.
sswp
:
- Removed check for
F
in range pi, -pi
.
svglm
:
- Modified centering adjustment in computation of the first element of the covariance matrix.
swed
:
- Modified
s2ed
to restore F
to its original contents before exiting.
swep
:
- Removed check for
F
in range pi, -pi
.
swwd
:
- Modified
s2wd
to restore F
to its original contents before exiting.
ds6rf
:
- Made
s3rf
call a precision specific call.
tdate
:
- Implement using a Fortran intrinsic.
timdy
:
- Implement using a Fortran intrinsic.
tndf
:
- Added terminal error message when underflow condition is detected.
tnin
:
- Added terminal error message when underflow condition is detected.
uvsta
:
- Modified internal computations of mean to use double the default precision to improve the accuracy of the result.
unit
:
- Incorrect results for complex numbers. Corrected norm computation in
c_norm2
and Z_norm2
.