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 file README located in this directory.

For release dates and maintenance and support schedules, see Rogue Wave Product Lifecycle Information.

- Additions
- Stat/Library
- Chapter 5: Categorical and Discrete Data Analysis
`logistic_regression_free`

An auxiliary function that frees the memory allocated by an`Imsls_f_model`

logistic regression model data structure.

- Chapter 11: Probability Distribution Functions and Inverses
`generalized_gaussian_pdf`

Evaluates the generalized Gaussian probability density function.`generalized_gaussian_cdf`

Evaluates the generalized Gaussian cumulative distribution function.`generalized_gaussian_inverse_cdf`

Evaluates the generalized Gaussian inverse cumulative distribution function.

- Chapter 12: Random Number Generation
`random_generalized_gaussian`

Generates pseudorandom variates from the generalized Gaussian distribution.

- Chapter 13: Data Mining
`multiclass_auc`

Computes the Area Under the Curve (AUC) for two-class classification problems, or a multiclass generalization to AUC for problems having more than two classes.

- Chapter 15: Utilities
`data_read`

Reads a delimited ascii flat file. Accepts numeric, string (char), and date/time fields and converts the data to a double matrix suitable for input into IMSL data mining algorithms.`free_data_matrix`

Frees the memory allocated for an Imsls_data_matrix structure.`free_column_info`

Frees the memory allocated for an Imsls_column_info structure.

- Chapter 5: Categorical and Discrete Data Analysis
- Math/Library
- Chapter 2: Eigensystem Analysis
`arpack_svd`

Computes some of the singular values and corresponding left and right singular vectors of a real rectangular matrix. Only matrix-vector products have to be defined to determine the singular values and vectors. Function`arpack_svd`

is especially suitable for the computation of partial SVDs of large sparse matrices.`arpack_general (complex)`

- Computes some of the eigenvalues and corresponding eigenvectors of a general complex matrix by an algorithmic variant of the implicitly restarted Arnoldi method. The function is most appropriate for large sparse matrices and can also be applied to generalized eigenvalue problems. For many standard problems, only matrix-vector products are needed to compute the eigenvalues.

- Chapter 8: Optimization
`transport`

- Added possibility to solve the transportation problem by the
interior-point method implemented in function
`sparse_lin_prog`

.

- Added possibility to solve the transportation problem by the
interior-point method implemented in function
`nonlin_least_squares`

- Added new optional argument
`IMSL_MAX_LM_PARAM_ITN_EXCEEDED`

to avoid potential infinite loops in the Levenberg-Marquardt algorithm.

- Added new optional argument

- Chapter 9: Special Functions
`internal_rate_of_return`

- Added Ehrlich-Aberth algorithm, callable by optional argument
`IMSL_ABERTH_METHOD`

, as an alternative method to compute the internal rate of return.

- Added Ehrlich-Aberth algorithm, callable by optional argument

- Chapter 2: Eigensystem Analysis

- Stat/Library
- Improvements
- Math/Library
- Chapter 7: Nonlinear equations
`zeros_poly`

- Changed output for Aberth's method so that only converged roots are
returned as complex numbers and all other roots are set to infinity.
Accordingly, changed warning message that occurs with
`IMSL_ABERTH_METHOD`

from`IMSL_NO_CONVERGE_MAX_ITER`

to`IMSL_FEWER_ZEROS_FOUND_1`

.

- Changed output for Aberth's method so that only converged roots are
returned as complex numbers and all other roots are set to infinity.
Accordingly, changed warning message that occurs with
`zeros_poly (complex)`

- Changed output for Aberth's method so that only converged roots are
returned as complex numbers and all other roots are set to infinity.
Accordingly, changed warning message that occurs with
`IMSL_ABERTH_METHOD`

from`IMSL_NO_CONVERGE_MAX_ITER`

to`IMSL_FEWER_ZEROS_FOUND_1`

.

- Changed output for Aberth's method so that only converged roots are
returned as complex numbers and all other roots are set to infinity.
Accordingly, changed warning message that occurs with
`zeros_function`

- Corrected starting point for Muller's method if user-defined initial
guess coincides with one of the bounds defined via
`IMSL_BOUND`

. - Corrected computation of next iterate in Muller's method: If possible, the root of the quadratic interpolating polynomial closest to the current iterate is now chosen as the next iterate. Only if the root search is restricted to a finite interval and the root closest to the current iterate is outside the interval, the more distant root is chosen as the next iterate - unless it lies outside the interval.

- Corrected starting point for Muller's method if user-defined initial
guess coincides with one of the bounds defined via

- Chapter 8: Optimization
`transport`

- Corrected the sign of the dual solution returned by optional
arguments
`IMSL_DUAL`

and`IMSL_DUAL_USER`

. - Corrected implementation of the simplex method for the case that the sum of warehouse capacities is smaller than the sum of store requirements.

- Corrected the sign of the dual solution returned by optional
arguments
`nonlin_least_squares`

- Fixed bug in the handling of errors from user-defined functions
triggered by function
`imsl_set_user_fcn_return_flag`

. - Improved robustness of code by adding checks for non-numbers (NaN, positive/negative infinity).

- Fixed bug in the handling of errors from user-defined functions
triggered by function

- Chapter 10: Statistics and Random Number Generation
`simple_statistics`

- Improved performance of MAD and simple robust estimate of scale computation.
- Corrected behavior of algorithm in the presence of missing values (NaNs): The old version returned NaNs for the median, MAD and simple robust estimate of scale of all variables if a missing value was detected in the data matrix. The new version excludes the rows containing missing values from the computations and returns the correct values.
- Corrected content of
`simple_statistics`

output table for the case that only one or zero rows of the data matrix are considered in the statistics computations.

- Chapter 12: Utilities
`mat_mul_rect_coordinate (real)`

- Corrected output of the matrix-vector products
`A*x`

and`trans(A)*x`

for the case of sparse non-square (i.e. rectangular) matrices when optional argument`IMSL_RETURN_USER_VECTOR`

is used.

- Corrected output of the matrix-vector products
`mat_mul_rect (real/complex)`

- Corrected memory-related bug where in the error case
`mat_mul_rect`

tries to free the user-allocated memory defined via optional argument`IMSL_RETURN_USER`

. - Corrected triple product computation.
- Corrected computation of outer products of the form
`"x*trans(A)"`

,`"x*ctrans(A)"`

,`"A*trans(x)"`

and`"A*ctrans(x)"`

where`x`

is a column vector and`A`

a one-column matrix. - Improved error handling of input arguments.

- Corrected memory-related bug where in the error case
`sort`

- Corrected memory deallocation in the error case and improved error
handling for optional argument
`IMSL_PERMUTATION`

.

- Corrected memory deallocation in the error case and improved error
handling for optional argument

- Chapter 7: Nonlinear equations
- Stat/Library
- Chapter 1: Basic Statistics
`simple_statistics`

- Improved performance of MAD computation and simple robust estimate of scale computation.
- Corrected content of
`simple_statistics`

output table for the case that only one or zero rows of a data matrix column are considered in the statistics computations. - Added check for positive number of observations if
`simple_statistics`

is called with`IMSLS_IDO`

= 0 or`IMSLS_IDO`

= 1. - Added check for non-negative number of observations if
`simple_statistics`

is called with`IMSLS_IDO`

= 2 or`IMSLS_IDO`

= 3. - Fixed bug that occurs if
`simple_statistics`

is called with zero observations,`IMSLS_IDO`

= 3 and weights or frequencies present. - Fixed bug that occurs if
`simple_statistics`

is called with one observation,`IMSLS_IDO`

= 0 and weights or frequencies present.

- Chapter 2: Regression
`regression_stepwise`

- Added optional argument
`IMSLS_MAX_CYCLING_STEPS`

to control the threshold for detecting if cycling may be occuring. - Allowed the return of output values even if the cycling error is triggered.
- Added optional argument IMSLS_PRINT_LEVEL.

- Added optional argument

- Chapter 5: Categorical and Discrete Data Analysis
`logistic_regression`

- Added logic to prevent overflow in the calculation of the likelihood.
- Improved error handling for some input arguments.
- Fixed memory leak issues.

`logistic_reg_predict`

- Added logic to prevent overflow in the calculation of the predicted probabilities.
- Added optional argument
`IMSLS_AUC`

to return the Area Under the Curve measure. - Replaced optional argument
`IMSLS_PREDERR`

with`IMSLS_AUC`

.

- Chapter 13: Data Mining
`decision_tree_predict`

- Added optional argument
`IMSLS_PREDICTED_CLASS_PROB(_USER)`

to return predicted class probabilities.

- Added optional argument
`svm_classifier_free`

- Fixed memory leak issue.

`genetic_algorithm`

- Added validation checks for several input arguments.

`ga_random_population`

- Fixed memory leak issues.

- Chapter 15: Utilities
`ascii_read`

- Fixed some memory leak issues.
- Improved error handling for some input arguments.
- Fixed infinite loop problem that occurs if the size of a
user-defined data array is larger than the number of row or column data
found in the ascii file. Also corrected the number of data elements
returned in variable
`n_vals`

for user-defined arrays and in the error case.

`mat_mul_rect`

- Corrected memory-related bug where in the error case
`mat_mul_rect`

tries to free the user-allocated memory defined via optional argument`IMSLS_RETURN_USER`

. - Corrected triple product computation.
- Corrected computation of outer products of the form
`"x*trans(A)"`

,`"x*ctrans(A)"`

,`"A*trans(x)"`

and`"A*ctrans(x)"`

where`x`

is a column vector and`A`

a one-column matrix. - Improved error handling of input arguments.

- Corrected memory-related bug where in the error case

- Chapter 1: Basic Statistics

- Math/Library

- Additions
- Math/Library
- Chapter 2: Eigensystem Analysis
`eig_sym`

- Added optional argument
`IMSL_EXTREME_VALUES`

for the computation of largest or smallest eigenvalues and associated eigenvectors. - Added possibility to use optional arguments
`IMSL_RANGE`

and`IMSL_VECTORS_USER`

simultaneously.

- Added optional argument
`eig_herm`

- Added optional argument
`IMSL_EXTREME_VALUES`

for the computation of largest or smallest eigenvalues and associated eigenvectors. - Added possibility to use optional arguments
`IMSL_RANGE`

and`IMSL_VECTORS_USER`

simultaneously.

- Added optional argument
`arpack_symmetric`

- Determines some of the eigenvalues and corresponding eigenvectors of a symmetric matrix by an algorithmic variant of the implicitly restarted Lanczos method. The function is most appropriate for large sparse matrices and can also be applied to generalized eigenvalue problems. For many standard problems, only matrix-vector products are needed to compute the eigenvalues.

`arpack_general`

- Determines some of the eigenvalues and corresponding eigenvectors of a general real matrix by an algorithmic variant of the implicitly restarted Arnoldi method. The function is most appropriate for large sparse matrices and can also be applied to generalized eigenvalue problems. For many standard problems, only matrix-vector products are needed to compute the eigenvalues.

- Chapter 2: Eigensystem Analysis
- Stat/Library
- Chapter 8: Time Series and Forecasting
`auto_arima`

- Added optional argument
`IMSLS_RELATIVE_ERROR`

so that the stopping criterion for the nonlinear equation solver in the method of moments algorithm can be modified. The method of moments is used in`auto_arima`

to compute initial parameter estimates for the least squares algorithm.

- Added optional argument

- Chapter 8: Time Series and Forecasting

- Math/Library
- Improvements
- Stat/Library
- Chapter 2: Regression
`nonlinear_regression`

- Changed names of critical sections in order to guarantee that the function behaves correctly when called with user-supplied functions that are not thread-safe.

- Chapter 2: Regression

- Stat/Library

- Additions
- Math/Library
- Chapter 7: Nonlinear equations
`zeros_poly (complex)`

- Added companion matrix and Aberth's method according to D. A. Bini's implementation as root finding methods. The new methods can be called via optional arguments IMSL_COMPANION_METHOD and IMSL_ABERTH_METHOD, respectively.

`zeros_poly`

- Added companion matrix and Aberth's method according to D. A. Bini's implementation as root finding methods. The new methods can be called via optional arguments IMSL_COMPANION_METHOD and IMSL_ABERTH_METHOD, respectively.

- Chapter 7: Nonlinear equations
- Stat/Library
- Chapter 2: Regression
`pls_regression`

- Added new optional arguments: IMSLS_OPT_N_COMPONENTS for the optimal component number, IMSLS_STANDARD_COEF(_USER) for the standard PLS regression coefficients, IMSLS_INTERCEPT_TERMS(_USER) for the intercept terms and IMSLS_PCT_VAR(_USER) for the percentage of variance of predictor and response variables explained by the components.

- Chapter 2: Regression

- Math/Library
- Improvements
- General
- Corrected behavior of installer incorrectly modifying the permissions of the specified install directory.
- Updated version of Intel MKL redistributable for platforms using non-Intel compilers.

- Math/Library
- Chapter 8: Optimization
`min_uncon_polytope`

- Fixed bugs in the computation of the shrinking step and the computation of the second worst point.

`min_con_polytope`

- Fixed bugs in the computation of the second worst and final best point.

- Chapter 8: Optimization
- Stat/Library
- Chapter 2: Regression
`pls_regression`

- Improved performance of cross-validation section of the code that determines the optimal number of PLS components.
- Fixed a bug in the computation of the optimal PRESS value if more than one response variable is present.
- Corrected computation of standard errors for regression coefficients.
- Corrected variance analysis output.

- Chapter 5: Categorical and Discrete Data Analysis
`categorical_glm`

- Refined computation of complementary log-log function.
- Simplified computation of some internal constants.

- Chapter 8: Time Series and Forecasting
`arma`

- Extended applicability of the method of moments from the standard ARMA model to general ARMA models.

- Chapter 13: Data Mining
`gradient_boosting`

- Corrected an error in the Huber-M loss function calculation that affected predictions on the test data set.

`mlff_network_trainer`

- Fixed memory leak issue in the computation of the squared residuals.

`support_vector_trainer`

- Fixed an issue in the radial basis function kernel thereby significantly improving performance.

- Chapter 2: Regression

- General

- Announcements
- none

- Additions
- Information about the OpenMP "schedule(runtime)" clause has been added to Math and Stat User Guide under the OpenMP Usage section in the Introduction.
- Information about the OpenMP OMP_NUM_THREADS and OMP_NESTED environment variables has been added to Math and Stat User Guide under the OpenMP Usage section in the Introduction.
- Math/Library
- Chapter 1: Linear Systems
`lin_sol_gen (real/complex)`

- Added optional argument
`IMSL_ITERATIVE_REFINEMENT`

to enable iterative refinement.

- Added optional argument

- Chapter 1: Linear Systems

- Removals
- Support of Graphics Processing Units (NVIDIA) has been removed.

- Improvements
- Math/Library
- General
- The internally used IMSL function
`imsl_fi_power`

was replaced either by a direct computation of the power or a version of`imsl_fi_power`

that doesn't use the IMSL error handler. These changes might improve performance of the CMATH library.

- The internally used IMSL function
- Chapter 1: Linear Systems
`lin_sol_gen_coordinate (real/complex)`

- Fixed some memory leak issues.
- Fixed bugs in the handling of singular matrices.

`superlu (real/complex)`

- Fixed bug in the handling of singular matrices.

`lin_sol_gen_band (real)`

- Fixed initialization bug for matrices of order 1.
- Incorporated BLAS calls in the factorization routine.

- Chapter 3: Interpolation and Approximation
`cub_spline_tcb`

- Fixed memory leak issue.

`cub_spline_interp_e_cnd`

- Implemented various performance improvements.

`cub_spline_interp_shape`

- Implemented various performance improvements for large interpolation sets.

`spline_least_squares`

- Improved performance for large data sets and large spline space dimensions.

`spline_interp`

- Implemented performance improvements for large interpolation sets.

`spline_2D_interp`

- Implemented performance improvements for large two-dimensional interpolation sets.

- Chapter 4: Quadrature
`gauss_quad_rule`

- Improved performance for large numbers of quadrature points through OpenMP parallelism.

- Chapter 5: Differential Equations
`ode_runge_kutta`

- Improved performance by replacing Level 1 BLAS calls by Level 2 BLAS calls where appropriate.
- Fixed memory leak issue.

- Chapter 8: Optimization
`quadratic_prog`

- Corrected handling of constraint inconsistencies.
- Slightly relaxed error tolerance used in the check for constraint dependencies to allow for a wider range of problems to be solved.

`constrained_nlp`

- Fixed some problems related to memory deallocation.
- Implemented various performance improvements.
- Modified code so that now an error message is issued in case the algorithm converges to an infeasible stationary point of the minimization problem.

`min_uncon_multivar`

- Fixed bug in the internal parallel computation of the numerical gradient.
- Fixed function pointer initialization error.
- Corrected returned objective value in case the function issues an IMSL_NO_FURTHER_PROGRESS warning message.

- Chapter 9: Special Functions
`bessel_Jx`

- Implemented performance improvements in case that many Bessel function evaluations are required.

`bessel_Yx`

- Implemented performance improvements in case that many Bessel function evaluations are required.

`bessel_Ix`

- Implemented performance improvements in case that many Bessel function evaluations are required.

`bessel_Kx`

- Implemented performance improvements in case that many Bessel function evaluations are required.

`bivariate_normal_cdf`

- Replaced algorithm that computes Owen's T-function by a more efficient algorithm of Patefield and Tandy.

`internal_rate_of_return`

- Modified underlying algorithm in order to get more accurate solutions.
- Added new optional argument
`IMSL_MAX_EVALS`

in order to be able to control the maximum number of iterations of the root finder.

- Chapter 12: Utilities
`mat_mul_rect (real/complex)`

- Implemented various performance improvements including OpenMP support.

- Error handling:
`imslerr.dat`

- Fixed some misspellings in error messages.

- Fixed bug in the internal handling of error messages.

- General
- Stat/Library
- General
- The internally used IMSL function
`imsls_fi_power`

which computes the integer powers of a floating point number was inlined where possible. This change might improve performance of the CSTAT library.

- The internally used IMSL function
- Chapter 2: Regression
`hypothesis_partial`

- Corrected argument check for input variable
`nu`

so that - in accordance with the documentation - an error is now issued if`nu`

is equal to zero. - Corrected column number of array
`g`

(see optional arguments`IMSLS_G`

and`IMSLS_G_USER`

) from`n_dependent`

to`nu`

. - Corrected output of matrix returned in array
`g`

(see optional arguments`IMSLS_G`

and`IMSLS_G_USER`

). Amongst others, if`nh`

is less than`nhp`

the unused rows in`g`

remain now unchanged by`hypothesis_partial`

if`g`

is user-defined via`IMSLS_G_USER`

. - Corrected output in array
`h`

returned through optional argument`IMSLS_H_MATRIX_USER`

: If`nh`

is less than`nhp`

the unused rows in`h`

remain now unchanged by`hypothesis_partial`

.

- Corrected argument check for input variable
`nonlinear_regression`

- Corrected internal initialization of several tolerance values.

`pls_regression`

- Added a check and terminal error for input data with constant columns.
- Corrected the PRESS calculation to recenter the training data in each fold of the cross-validation procedure.
- Corrected cross-validation sampling.

- Chapter 5: Categorical and Discrete Data Analysis
`categorical_glm`

- Corrected internal centering of initial intercept if optional
argument
`IMSLS_INITIAL_EST_INPUT`

is used. - Improved documentation for optional argument
`IMSLS_INITIAL_EST_INPUT`

. (Documentation) - Corrected size of array
`iterations`

related to optional arguments`IMSLS_ITERATIONS`

and`IMSLS_ITERATIONS_USER`

. (Code and documentation) - Corrected pdf formula for model 2 in the table of the Description section. (Documentation)

- Corrected internal centering of initial intercept if optional
argument

- Chapter 8: Time Series and Forecasting
`ts_outlier_identification`

- Improved performance of outlier detection, resulting in significant
improvements in overall performance for time series with many potential
outliers. These changes might also affect positively the performance of
`ts_outlier_identification`

calling function`auto_arima`

.

- Improved performance of outlier detection, resulting in significant
improvements in overall performance for time series with many potential
outliers. These changes might also affect positively the performance of

- Chapter 11: Probability Distribution Functions and Inverses
`multivariate_normal_cdf`

- Corrected documentation of required argument
`sigma`

: The function now permits solely the variance-covariance matrix as input. - Corrected correlation coefficients and bounds used in the trivariate case.
- Corrected computation of probabilities in case of equicorrelated multivariate normal distributions.
- Corrected and improved algorithm that orders upper integration bounds and permutes the correlation matrix accordingly.
- Fixed one missing memory allocation and some memory leak issues.

- Corrected documentation of required argument

- Chapter 12: Random Number Generation
`random_substream_seed_get`

- Fixed internal initialization error.

- Error handling:
- Fixed bug in the internal handling of error messages.

- General

- Math/Library

- Announcements
- none

- Additions
- none

- Improvements
- Math/Library
- Chapter 9: Special Functions
`internal_rate_of_return`

- Modified underlying algorithm in order to get more accurate solutions.
- Added new optional argument
`IMSL_MAX_EVALS`

in order to be able to control the maximum number of iterations of the root finder.

- Chapter 9: Special Functions

- Math/Library

- Announcements
- Notice to customers using Oracle Solaris platforms: IMSL C 2016 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 C
`CUBLAS_LIBRARY`

module: IMSL C 2016 will be the last planned version to support the NVIDIA CUDA CUBLAS Library. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement. - CUDA Toolkit Libraries support upgraded to 8.0
- IMSL is transitioning toward online only documentation. Currently documentation is available with the installation of the product and on our website https://help.imsl.com/c. In future releases documentation will be available only at https://help.imsl.com/c
- 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.

- Additions
- Stat/Library
- Chapter 8: Time Series and Forecasting
`arima`

:- Fits regular and seasonal autoregressive and moving average parameters along with optional regression variables.

- Chapter 8: Time Series and Forecasting

- Stat/Library
- Improvements
- Math/Library
- Chapter 1: Linear Systems
`lin_svd_gen`

(real/complex)- Corrected storage order of the left singular vectors in array U when input array A and U share the same storage locations. Corrected sign in formula for shift calculation.

`lin_svd_gen`

(real/complex)- Added possibility to call LAPACK routine
`?GESDD (?=S,D/C,Z)`

, a divide-and-conquer SVD implementation, via a new optional argument`IMSL_METHOD`

.

- Added possibility to call LAPACK routine

- Chapter 1: Linear Systems
- Stat/Library
- Chapter 13: Data Mining
`decision_tree`

:- Corrected a memory allocation error for response variables of ordinal type.

- Chapter 13: Data Mining

- Math/Library

- Announcements
- OpenMP-enabled IMSL functions use the "schedule(runtime)" clause for the parallelized FOR-loops to give users more control of scheduling. Please go to http://openmp.org for more information.

- Additions
- Math/Library
- Chapter 8: Optimization
`transport`

- Solves a transportation problem.

`min_con_polytope`

- Minimizes a function of n variables subject to bounds on the variables using a direct search complex algorithm.

`min_con_lin_trust_region`

- Minimizes a function of n variables subject to linear constraints using a derivative-free, interpolation-based trust-region method.

- Chapter 8: Optimization
- Stat/Library
- Chapter 13: Data Mining
`decision_tree`

- Now has options for random forest ensemble learning.

`gradient_boosting`

- Performs stochastic gradient boosting for decision trees.

- Chapter 13: Data Mining

- Math/Library
- Improvements
- Math/Library
- none

- Stat/Library
- Chapter 2: Regression
`pls_regression`

- Replaced ALERT message
`IMSLS_RESIDUAL_CONVERGED`

by WARNING message`IMSLS_PLS_REGRESSION_CONVERGED`

.

- Replaced ALERT message

- Chapter 8: Time Series and Forecasting
`arma`

- Added optimality check for the starting point of the
`ARMA`

parameter optimization.

- Added optimality check for the starting point of the

- Chapter 12: Random Number Generation
`random_normal_multivariate`

- Now generates the same values in multiple runs as in a single run with the same seed.

- Chapter 2: Regression

- Math/Library

- Announcements
- The general look and feel of the online documentation has been changed.
- CUDA 7.5 is supported.

- Additions
- Math/Library
- Chapter 8: Optimization
`min_uncon_polytope`

- Minimizes a function of n variables using a direct search polytope algorithm.

- Chapter 8: Optimization
- Stat/Library
- Chapter 13: Data Mining
`decision_tree`

- Added optional argument
`IMSLS_CRITERIA`

which allows users to specify which criteria the`ALACART`

method and the C4.5 method should use in the gain calculations to determine the best split at each node.

- Added optional argument

- Chapter 13: Data Mining

- Math/Library
- Improvements
- Math/Library
- Chapter 3: Interpolation and Approximation
`cub_spline_tcb`

- Corrected value assignment of optional argument
`IMSL_RIGHT`

. Document Example 2 output updated to reflect this correction.

- Corrected value assignment of optional argument

- Chapter 8: Optimization
`sparse_lin_prog`

- Updated the function description (Documentation)

- Chapter 12: Utilities
`output_file`

- Corrected document example 2 (Documentation)

- Error handling:
`imslerr.dat`

- Various error message corrections.

- Chapter 3: Interpolation and Approximation
- Stat/Library
- Chapter 2: Regression
`pls_regression`

- Various performance improvements
- Resolved cross validation memory issues
- Corrected description for
`IMSLS_N_FOLD`

(Documentation)

- Chapter 5: Categorical and Discrete Data Analysis
`logistic_regression`

- Fixed error in the initial values.

`logistic_reg_predict`

- Fixed problems with the prediction intervals and improper indexing

- Chapter 7: Tests of Goodness of Fit
`chi_squared_test`

- Corrected index out of bounds problem

- Chapter 8: Time Series and Forecasting
`auto_arima`

- Resolved resource error associated with parallel code
- Relaxed search for optimum ARMA model when the optimum model found
by
`seasonal_fit`

cannot be handled by`ts_outlier_identification`

- Chapter 12: Random Number Generation
`random_table_get`

- Updated the function description (Documentation)

`random_GFSR_table_get`

- Updated the function description (Documentation)

`random_weibull`

- Updated the example description (Documentation)

- Chapter 13: Data Mining
`apriori`

- Increased resource allocation and improved union accuracy for frequent item sets
- Improved performance of candidate itemsets identification
- Optional argument
`IMSLS_MIN_SUPPORT`

changed to type double only. - Corrected the description of the array x in multiple references from
type
`float`

to type`int`

(Documentation) - Corrected confidence value calculations.

`aggr_apriori`

- Corrected the description of the array x in multiple references from
type
`float`

to type`int`

(Documentation)

- Corrected the description of the array x in multiple references from
type
`decision_tree`

- Improved memory efficiency to correct for out of memory errors. Corrected problems associated with memory allocation for cross validation.
- Corrected the function description (Documentation)
- Added description for the deviance criterion to the documentation.

- Chapter 15: Utilities
`data_sets`

- Added check to assure mutually exclusive arguments are not selected together.

- Chapter 2: Regression

- Math/Library

- Announcements
- License management has been removed for paid-up licenses.
- Made error handling more robust when no heap memory is available.
- It is possible that some memory is retained between calls to IMSL C
Numerical Library functions for error handling purposes. This memory may
be reported as a memory leak by some leak detection tools. The following
functions free the allocated memory associated with the error handler
for each thread:
`imsl_free_error_handlers()`

- Frees memory associated with C Math Library error handlers.

`imsls_free_error_handlers()`

- Frees memory associated with C Stat Library error handlers.

- A deprecated function is one that is no longer used by anything in
the library but is being included in the product for those users who may
be referencing it in their application. However future versions of C
Numerical Library may not include these functions. If any of these are
being called within your application, it is recommended that you change
your code to call the replacement function or retain the deprecated
function before replacing this library with the next version.
- deprecated
`ode_adams_gear`

and replaced by`ode_adams_krogh`

. - deprecated
`ode_adams_2nd_order`

and replaced by`ode_adams_krogh`

. - deprecated
`pde_method_of_lines`

and replaced by`modified_method_of_lines`

. - deprecated
`dea_petzold_gear`

and replaced by`differential_algebraic_eqs`

. - deprecated
`initialize`

without replacement.

- deprecated

- Additions
- Math/Library
- Reference Material
`initialize_error_handler`

- Initialize the IMSL C Math Library error handling system.

`set_user_fcn_return_flag`

- Indicates a condition has occurred in a user-supplied function necessitating a return to the calling function.

- Chapter 1: Linear Systems
`superlu_smp`

- Computes the LU factorization of a general sparse matrix by a
left-looking column method using OpenMP parallelism, and solves the real
sparse linear system of equations
`Ax = b`

.

- Computes the LU factorization of a general sparse matrix by a
left-looking column method using OpenMP parallelism, and solves the real
sparse linear system of equations
`superlu_smp`

(complex)- Computes the LU factorization of a general complex sparse matrix by
a left-looking column method using OpenMP parallelism and solves the
complex sparse linear system of equations
`Ax = b`

.

- Computes the LU factorization of a general complex sparse matrix by
a left-looking column method using OpenMP parallelism and solves the
complex sparse linear system of equations
`sparse_cholesky_smp`

- Computes the Cholesky factorization of a sparse real symmetric
positive definite matrix A by an OpenMP parallelized supernodal
algorithm and solves the sparse real positive definite system of linear
equations
`Ax = b`

.

- Computes the Cholesky factorization of a sparse real symmetric
positive definite matrix A by an OpenMP parallelized supernodal
algorithm and solves the sparse real positive definite system of linear
equations
`sparse_cholesky_smp`

(complex)- Computes the Cholesky factorization of a sparse Hermitian positive
definite matrix A by an OpenMP parallelized super-nodal algorithm and
solves the sparse Hermitian positive definite system of linear equations
`Ax = b`

.

- Computes the Cholesky factorization of a sparse Hermitian positive
definite matrix A by an OpenMP parallelized super-nodal algorithm and
solves the sparse Hermitian positive definite system of linear equations

- Chapter 8: Optimization
`jacobian`

- Approximates the Jacobian of m functions in n unknowns using divided differences.

- Reference Material
- Stat/Library
- Reference Material
`initialize_error_handler`

- Initialize the IMSL C Stat Library error handling system.

`set_user_fcn_return_flag`

- Indicates a condition has occurred in a user-supplied function necessitating a return to the calling function.

- Chapter 8: Time Series and Forecasting
`bayesian_seasonal_adj`

- Decomposes a time series into trend, seasonal, and an error component.

`vector_autoregression`

- Estimates a vector auto-regressive time series model with optional moving average components.

- Chapter 11: Probability Distribution Functions and Inverses
`pareto_cdf`

- Evaluates the Pareto cumulative probability distribution function.

`pareto_pdf`

- Evaluates the Pareto probability density function.

`discrete_uniform_cdf`

- Evaluates the discrete uniform cumulative distribution function (CDF).

`discrete_uniform_inverse_cdf`

- Evaluates the inverse of the discrete uniform cumulative distribution function (CDF).

`discrete_uniform_pdf`

- Evaluates the discrete uniform probability density function (PDF).

`exponential_cdf`

- Evaluates the exponential cumulative distribution function (CDF).

`exponential_inverse_cdf`

- Evaluates the inverse of the exponential cumulative distribution function (CDF).

`exponential_pdf`

- Evaluates the exponential probability density function (PDF).

`geometric_cdf`

- Evaluates the discrete geometric cumulative distribution function (CDF).

`geometric_inverse_cdf`

- Evaluates the inverse of the discrete geometric cumulative distribution function (CDF).

`geometric_pdf`

- Evaluates the discrete geometric probability density function (PDF).

`lognormal_cdf`

- Evaluates the lognormal cumulative distribution function (CDF).

`lognormal_inverse_cdf`

- Evaluates the inverse of the lognormal cumulative distribution function (CDF).

`lognormal_pdf`

- Evaluates the lognormal probability density function (PDF).

- Chapter 13: Data Mining
`apriori`

- Computes the frequent itemsets in a transaction set.

`aggr_apriori`

- Computes the frequent itemsets in a transaction set using aggregation.

`write_apriori_itemsets`

- Prints frequent itemsets.

`write_association_rules`

- Prints association rules.

`free_apriori_itemsets`

- Frees the memory allocated within a frequent itemsets structure.

`free_association_rules`

- Frees the memory allocated within an association rules structure.

`support_vector_trainer`

- Trains a Support Vector Machines (SVM) classifier.

`support_vector_classification`

- Classifies unknown patterns using a previously trained Support
Vector Machines (SVM) model computed by
`support_vector_trainer`

.

- Classifies unknown patterns using a previously trained Support
Vector Machines (SVM) model computed by
`svm_classifier_free`

- Frees memory allocated to an
`Imsls_f_svm_model`

/`Imsls_d_svm_model`

data structure.

- Frees memory allocated to an
`kohonenSOM_trainer`

- Trains a Kohonen network.

`kohonenSOM_forecast`

- Calculates forecasts using a trained Kohonen network.

`decision_tree`

- Generates a decision tree for a single response variable and two or more predictor variables.

`decision_tree_predict`

- Computes predicted values using a decision tree.

`decision_tree_print`

- Prints a decision tree.

`decision_tree_free`

- Frees the memory associated with a decision tree.

- Reference Material

- Math/Library
- Improvements
- Math/Library
- General
- Initialized variables used by the error handler.
- The internally used IMSL BLAS function,
`scopy`

, now uses C function memmove instead of memcpy for overlapping arrays. `sgemm`

(cuda version)- Now Copies only the needed elements of an array to the GPU.

`strsm`

(cuda version)- Now Copies only the needed elements of an array to the GPU.

- Chapter 1: Linear Systems
`lin_sol_posdef_coordinate`

- Corrected use of memory to eliminate potential program crashes.
- Documented functions which free returned structures.

`lin_sol_posdef_coordinate`

- Corrected use of memory to eliminate (complex) potential program crashes.
- Documented functions which free returned structures.

`superlu`

(complex)- Improved performance.

- Chapter 3: Interpolation and Approximation
- cub_spline_value
- Added note that
`xvec`

must be sorted when optional arguments`IMSL_GRID`

or`IMSL_GRID_USER`

are used. (documentation)

- Added note that

- cub_spline_value
- Chapter 5: Differential Equations
`feynman_kac`

- Initialized variables to zero.

- Chapter 8: Optimization
- quadratic_prog
- Improved performance. The default convergence tolerance was loosened and optional arguments were added to allow the user to set the convergence tolerance and the maximum number of iterations allowed.

`read_mps`

- Modified so that the objective constant is returned in the variable
objective_constant which was added to the
`Imsl_f_mps`

data structure.

- Modified so that the objective constant is returned in the variable
objective_constant which was added to the
`sparse_lin_prog`

- Now checks for feasibility of empty constraints in the pre-solver.

`sparse_quadratic_prog`

- Check for feasibility of empty constraints in the pre-solver.

- quadratic_prog
- Chapter 10: Statistics and Random Number Generation
`covariances`

- Fixed a deficiency in calculating the correlation matrix when the observations are constant.

`chi_squared_inverse_cdf`

- Changed error message which was using an uninitialized variable as part of the error message.

- Chapter 12: Utilities
`mat_mul_rect`

- Now uses SGEMV and SGEMM for the general matrix case.

`fopen`

- Added Windows example. (documentation)

`fclose`

- Added Windows example. (documentation)

`vector_norm`

(complex)- Documented function. (documentation)

- General
- Stat/Library
- General:
- Initialized variables used by the error handler.
- The internally used IMSL BLAS function,
`scopy`

, now uses C function memmove instead of memcpy for overlapping arrays. `strsm`

(cuda version)- Now copies only the needed elements of an array to the GPU.

- Chapter 1: Basic Statistics
`normal_two_sample`

- Added streaming data capability.

`sort_data`

- Eliminated memory leak.

- Chapter 2: Regression
`poly_regression`

- Corrected calculation of
`IMSLS_SSQ_PURE_ERROR`

and`IMSLS_DF_PURE_ERROR`

when neither`IMSLS_SSQ_LOF`

nor`IMSLS_SSQ_LOF_USER`

are specified.

- Corrected calculation of
`pls_regression`

- The first equation was removed. (documentation)

- regression
- Added a description on how to free space allocated by the
`Imsls_f_regression`

structure. (documentation)

- Added a description on how to free space allocated by the

- Chapter 3: Correlation and Covariance
`covariances`

- Fixed a deficiency in calculating the correlation matrix when the observations are constant.

- Chapter 4: Analysis of Variance and Designed Experiments
`anova_nested`

- Corrected error message so it no longer uses an uninitialized variable.

- Chapter 6: Nonparametric Statistics
`wilcoxon_rank_sum`

- Initialized a structure.

- Chapter 7: Tests of Goodness of Fit
`chi_squared_inverse_cdf`

- Changed error message which was using an uninitialized variable as part of the error message.

- randomness_test
- Corrected so as to not use an uninitialized variable when
`method=1`

. - Added streaming data capability.

- Corrected so as to not use an uninitialized variable when

- Chapter 8: Time Series and Forecasting
- Introduction
- Corrected documentation for the "Linearly Constrained Minimization" topic. (documentation)

`auto_arima`

- For method = 1, the search for the optimum
`AR(p,0,s,d)`

model was relaxed in case the predetermined optimum`(p*,0,s*,d*)`

combination cannot be handled by the outlier detection routine. - Added optional argument
`IMSLS_SUPPLY_WORK_ARRAYS`

to avoid memory fragmentation if many time series are handled sequentially by`auto_arima`

. - Used OpenMP to parallelize the search for the optimum model for
`METHOD = 1`

and`METHOD = 2`

.

- For method = 1, the search for the optimum
`max_arma`

- Modifications made to enable consistent output between IMSL Fortran Numerical Library and IMSL C Numerical Library.

`regression_arima`

- Corrected optional output argument
`IMSLS_VAR_NOISE`

.

- Corrected optional output argument

- Introduction
- Chapter 9: Multivariate Analysis
`cluster_k_means`

- Added the optional argument
`IMSLS_CLUSTER_HIST`

which allows the user to obtain information on the cluster membership of each observation per iteration. - Added the optional argument
`IMSLS_CLUSTER_HISTORY_USER`

whose purpose is identical to the optional argument`IMSLS_CLUSTER_HIST`

except that the storage is provided by the user's program.

- Added the optional argument

- Chapter 11: Probability Distribution Functions and Inverses
`multivariate_normal_cdf`

- Corrected array indexing and initialization problems.

`max_likelihood_estimates`

- Enhanced documentation.

- Chapter 13: Data Mining
`ga_chromosome`

- Freed temporary arrays. Both the description of the example output
and the printed output itself for
`ga_chromosome`

were changed to reflect the fact that the binary phenotype comes first followed by the nominal phenotype.

- Freed temporary arrays. Both the description of the example output
and the printed output itself for
`ga_clone_population`

- Freed temporary arrays.

`ga_free_individual`

- Freed temporary arrays.

`ga_grow_population`

- Freed temporary arrays.

`ga_individual`

- Freed temporary arrays. Corrected document example output. (documentation)

`ga_merge_population`

- Freed temporary arrays.

`ga_population`

- Freed temporary arrays.

`genetic_algorithm`

- Correct internal memory allocation and initialization of variables.

`naive_bayes_trainer`

- Added an error message to identify insufficient patterns in a class error test.

- Chapter 15: Utilities
`data_sets`

- Corrected documented array size when
`data_set_choice=10`

. (documentation)

- Corrected documented array size when
`mat_mul_rect`

- Now uses
`SGEMV`

and`SGEMM`

for the general matrix case.

- Now uses
`fopen`

- Added Windows example. (documentation)

`fclose`

- Added Windows example. (documentation)

- General:

- Math/Library

- Announcements
- none

- Additions
- Math/Library
- Reference Material
`initialize_error_handler`

- Initialize the IMSL C Math Library error handling system.

`set_user_fcn_return_flag`

- Indicates a condition has occurred in a user-supplied function necessitating a return to the calling function.

- Reference Material
- Stat/Library
- Reference Material
`initialize_error_handler`

- Initialize the IMSL C Stat Library error handling system.

`set_user_fcn_return_flag`

- Reference Material

- Math/Library
- Improvements
- Math/Library
- General
- Made error handling, when no heap memory is available, more robust.
- Initialized variables used by the error handler.
`sgemm`

(cuda version)- Copy only the needed elements of an array to the GPU.

`strsm`

(cuda version)- Copy only the needed elements of an array to the GPU.

- Chapter 5: Differential Equations
`feynman_kac`

- Initialize variables to zero.

- Chapter 8: Optimization
`quadratic_prog`

- Improved performance.
- The default convergence tolerance was loosened and optional arguments were added to allow the user to set the convergence tolerance and the maximum number of iterations allowed.

`read_mps`

- Modified so that the objective constant is returned in the variable
`objective_constant`

which was added to the`Imsl_f_mps`

data structure.

- Modified so that the objective constant is returned in the variable

- Chapter 12: Utilities
`fopen`

- Added Windows example. (documentation)

`fclose`

- Added Windows example. (documentation)

- General
- Stat/Library
- General:
- Made error handling, when no heap memory is available, more robust.
- Initialized variables used by the error handler.

- Chapter 2: Regression
`poly_regression`

- Corrected calculation of
`IMSLS_SSQ_PURE_ERROR`

and`IMSLS_DF_PURE_ERROR`

when neither`IMSLS_SSQ_LOF`

nor`IMSLS_SSQ_LOF_USER`

are specified.

- Corrected calculation of

- Chapter 8: Time Series and Forecasting
`auto_arima`

- For
`method = 1`

, the search for the optimum`AR(p,0,s,d)`

model was relaxed in case the predetermined optimum`(p*,0,s*,d*)`

combination cannot be handled by the outlier detection routine. - Added optional argument
`IMSLS_SUPPLY_WORK_ARRAYS`

to avoid memory fragmentation if many time series are handled sequentially by`auto_arima`

. - OpenMP-parallelized search for the optimum model for
`METHOD = 1`

and`METHOD = 2`

.

- For
`regression_arima`

- Corrected optional output argument`IMSLS_VAR_NOISE`

.

- Chapter 11: Probability Distribution Functions and Inverses
`multivariate_normal_cdf`

- Corrected array indexing and initialization problems.

- Chapter 13: Data Mining
`ga_chromosome`

- Free temporary arrays.

`ga_clone_population`

- Free temporary arrays.

`ga_free_individual`

- Free temporary arrays.

`ga_grow_population`

- Free temporary arrays.

`ga_individual`

- Free temporary arrays.

`ga_merge_population`

- Free temporary arrays.

`ga_population`

- Free temporary arrays.

- Chapter 15: Utilities
`fopen`

- Added Windows example. (documentation)

`fclose`

- Added Windows example. (documentation)

- General:

- Math/Library

- Announcements
- none

- Additions
- none

- Improvements
- Math/Library
- Chapter 10: Statistics and Random Number Generation
- covariances
- Fixed a deficiency in calculating the correlation matrix when the observations are constant.

- covariances

- Chapter 10: Statistics and Random Number Generation
- Stat/Library
- Chapter 3: Correlation and Covariance
- covariances
- Fixed a deficiency in calculating the correlation matrix when the observations are constant.

- covariances

- Chapter 3: Correlation and Covariance

- Math/Library

- Announcements
- The user should not see any difference in license management
behavior. Windows users can use the
`VNI_LICENSE_FILE`

environment to identify the location of the license file. This option was already available to Linux/UNIX users. - OpenMP directives have been added to various functions to improve parallelization.
- Increased utilization of third-party vendor's high performance libraries has been implemented to improve performance.
- Support of Graphics Processing Units (NVIDIA) has been added to improve performance.
- A deprecated function is one that is no longer used by anything in
the library but is being included in the product for those users who may
be referencing it in their application. However future versions of C
Numerical Library may not include these functions. If any of these are
being called within your application, it is recommended that you change
your code to call the replacement function or retain the deprecated
function before replacing this library with the next version.
- deprecated
`pde_method_of_lines`

and replaced by`modified_method_of_lines`

.

- deprecated

- The user should not see any difference in license management
behavior. Windows users can use the
- Additions
- Math/Library
- Chapter 1: Linear Systems
`superlu`

- Computes the LU factorization of a general sparse matrix by a column
method and solves the real sparse linear system of equations
`Ax=b`

.

- Computes the LU factorization of a general sparse matrix by a column
method and solves the real sparse linear system of equations
`superlu`

(complex)- Computes the LU factorization of a general complex sparse matrix by
a column method and solves the complex sparse linear system of equations
`Ax=b`

.

- Computes the LU factorization of a general complex sparse matrix by
a column method and solves the complex sparse linear system of equations
`nonneg_least_squares`

- Computes the non-negative least squares (NNLS) solution of an
`m × n`

real linear least squares system.

- Computes the non-negative least squares (NNLS) solution of an
`nonneg_matrix_factorization`

- Given an
`m x n`

real matrix`A >= 0`

and an integer`K <= min(m,n)`

, compute an approximate factorization of`A`

. The matrix factors are computed to minimize the Frobenius, or sum of squares, norm of the error matrix.

- Given an

- Chapter 3: Interpolation
`spline_nd_interp`

- Performs multidimensional interpolation and differentiation for up to 7 dimensions.

- Chapter 4 – Quadrature
`int_fcn_sing_1d`

- Integrates a function with a possible internal or endpoint singularity.

`int_fcn_sing_2d`

- Integrates a function of two variables with a possible internal or endpoint singularity.

`int_fcn_sing_3d`

- Integrates a function of three variables with a possible internal or endpoint singularity

- Chapter 5: Differential Equations
`differential_algebraic_eqs`

- Solves a first order differential-algebraic system of equations with optional additional constraints and user-defined linear system solver.

`ode_adams_2nd_order`

- Solves an initial-value problem for a system of ordinary differential equations of order one or two using a variable order Adams method.

`modified_method_of_lines`

- Solves a system of partial differential equations using the method
of lines. Replaces deprecated function
`pde_method_of_lines`

.

- Solves a system of partial differential equations using the method
of lines. Replaces deprecated function

- Chapter 7: Nonlinear Equations
`zero_univariate`

- Finds a zero of a real univariate function.

- Chapter 8: Optimization
`sparse_lin_prog`

- Solves a sparse linear programming problem by an infeasible primal-dual interior-point method.

`sparse_quadratic_prog`

- Solves a sparse convex quadratic programming problem by an infeasible primal-dual interior-point method.

- Chapter 9: Special Functions
`psi`

- Evaluates the derivative of the log gamma function.

`psi1`

- Evaluates the second derivative of the log gamma function.

- Chapter 12: Utilities
`cuda_get`

- Gets the threshold used by the specified function to determine if the NVIDIA CUDA Toolkit algorithm will be used.

`cuda_set`

- Sets the threshold used by the specified function to determine if the NVIDIA CUDA Toolkit algorithm will be used.

`cuda_free`

- Releases NVIDIA memory allocated by the IMSL C Numerical Library.

- Chapter 1: Linear Systems
- Stat/Library
- Chapter 2: Regression
`pls_regression`

- Performs partial least squares (PLS) regression for one or more response variables and one or more predictor variables.

- Chapter 4: Analysis of Variance and Designed Experiments
`false_discovery_rates`

- Calculates the False Discovery Rate (FDR) q-values corresponding to a set of p-values resulting from multiple simultaneous hypothesis tests.

- Chapter 5: Categorical and Discrete Data Analysis
`logistic_regression`

- Fits a binomial or multinomial logistic regression model using iteratively re-weighted least squares.

`logistic_reg_predict`

- Predicts a binomial or multinomial outcome given an estimated model and new values of the independent variables.

- Chapter 7: Tests of Goodness of Fit
`ad_normality_test`

- Performs an Anderson-Darling test for normality.

`cvm_normality_test`

- Performs a Cramer-von Mises test for normality.

- Chapter 8: Time Series and Forecasting
`regression_arima`

- Fits a univariate ARIMA (p, d, q) time series model with the inclusion of one or more regression variables.

`auto_parm`

- Estimates structural breaks in non-stationary univariate time series.

`hw_time_series`

- Calculates parameters and forecasts using the Holt-Winters Multiplicative or Additive forecasting method for seasonal data.

- Chapter 11: Probability Distribution Functions
`non_central_beta_cdf`

- Evaluates the non-central beta cumulative distribution function (CDF).

`non_central_beta_inverse_cdf`

- Evaluates the inverse of the non-central beta cumulative distribution function (CDF).

- non_central_beta_pdf
- Evaluates the non-central beta probability density function (PDF).

`complementary_non_central_F_cdf`

- Evaluates the complementary non-central F cumulative distribution function (CDF).

`max_likelihood_estimates`

- Calculates maximum likelihood estimates (MLE) for the parameters of one of several univariate probability distributions.

- Chapter 12: - Random Number Generation
`random_mvar_t_copula`

- Given a Cholesky factorization of a correlation matrix, generates pseudorandom numbers from a Student’s t Copula distribution.

`random_mvar_gaussian_copula`

- Given a Cholesky factorization of a correlation matrix, generates pseudorandom numbers from a Gaussian Copula distribution.

`cannonical_correlation`

- Given an input array of deviate values, generates a canonical correlation array.

- Chapter 15: Utilities
`ascii_read`

- Reads freely-formatted ASCII files.

`impute_missing`

- Locate and optionally replace dependent variable missing values with nearest neighbor estimates.

`cuda_get`

- Gets the threshold used by the specified function to determine if the NVIDIA CUDA Toolkit algorithm will be used.

`cuda_set`

- Sets the threshold used by the specified function to determine if the NVIDIA CUDA Toolkit algorithm will be used.

`cuda_free`

- Releases NVIDIA memory allocated by the IMSL C Numerical Library.

- Chapter 2: Regression

- Math/Library
- Improvements
- Math/Library
- Chapter 1: Linear Systems
`lin_sol_gen`

- Corrected/Updated documentation. (documentation)

`lin_sol_gen_coordinate`

- Corrected description of the optional argument
`IMSL_SUPPLY_SPARSE_LU_IN_COORD`

. (documentation)

- Corrected description of the optional argument
`lin_sol_posdef_coordinate`

- Allow optional arguments
`IMSL_SUPPLY_SYMBOLIC_FACTOR`

and`IMSL_SOLVE_ONLY`

to be used simultaneously. - Corrected the case where multiple calls with optional argument
`IMSL_SUPPLY_SYMBOLIC_FACTOR`

produces an unhandled exception. - Additional documentation was added to the description of the
`IMSL_RETURN_NUMERIC_FACTOR`

optional argument which describes the returned structure. (documentation)

- Allow optional arguments
`lin_sol_posdef_coordinate`

(complex)- Allow optional arguments
`IMSL_SUPPLY_SYMBOLIC_FACTOR`

and`IMSL_SOLVE_ONLY`

to be used simultaneously. - Corrected the case where multiple calls with optional argument
`IMSL_SUPPLY_SYMBOLIC_FACTOR`

produces an unhandled exception. - Additional documentation was added to the description of the
`IMSL_RETURN_NUMERIC_FACTOR`

optional argument which describes the returned structure. (documentation)

- Allow optional arguments
`lin_lsq_lin_constraints`

- Improved performance on large problems.
- Updated code so that solutions can be found for some numerically unstable problems.

- Chapter 3: Interpolation and Approximation
- Interpolation and Approximation Usage Notes
- Re-wrote the section "Structures for Splines and Piecewise Polynomials".

`user_fcn_least_squares`

- Documentation added referring the user to
`nonlin_least_squares`

for very large problems. (documentation)

- Documentation added referring the user to

- Interpolation and Approximation Usage Notes
- Chapter 4: Quadrature
`int_fcn_sing_pts`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_alg_log`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_inf`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_trig`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_fourier`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_cauchy`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_smooth`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_hyper_rect`

- Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Allow the required function to be NULL if the optional argument
`int_fcn_qmc`

- Removed redundant instance of optional argument
`IMSL_MAX_EVALS`

. (documentation) - Allow the required function to be NULL if the optional argument
`IMSL_FCN_W_DATA`

is present.

- Removed redundant instance of optional argument

- Chapter 7: Nonlinear Equations
`zeros_function`

- Changes were made to improve the code's ability to find roots when the function is almost parallel to the x-axis near the root.

- Chapter 8: Optimization
`nonlin_least_squares`

- Added a check in the Levenberg-Marquardt step to prevent an infinite loop when step length and the upper and lower L-M parameters do not change.

`read_mps`

- Modified type "G" constraints where the upper bound was incorrectly
set to positive infinity if the constraint also has an entry in the
`RANGES`

section.

- Modified type "G" constraints where the upper bound was incorrectly
set to positive infinity if the constraint also has an entry in the
`linear_programming`

- Removed the redundant free statement from the document example. (documentation)

`bounded_least_squares`

- Added a check in the Levenberg-Marquardt step to prevent an infinite loop when step length and the upper and lower L-M parameters do not change.

`constrained_nlp`

- Added code to return NULL when no solution is found.
- Modified code to be consistent with documentation. The code now
allows
`xl[i]= xu[i]`

.

- Chapter 9: Special Functions
`d_erfce`

- Variables used to partition the input argument space were corrected.

`bessel_Jx`

- Added an error message to indicate that the continued fractions failed to converge.

`internal_rate_annuity`

- Implemented a new zero finder to improve the ability to find solutions.

`internal_rate_of_return`

- Initialized uninitialized variables.
- Implemented a new zero finder to improve the ability to find solutions.

`internal_rate_schedule`

- Initialized uninitialized variables.
- Implemented a new zero finder to improve the ability to find solutions.

`yield_periodic`

- The call to the root finder now uses the value supplied with
optional argument
`IMSL_HIGHEST`

as the upper-bound. - Allow computation of negative yields with a lower-bound of -1.0.

- The call to the root finder now uses the value supplied with
optional argument

- Chapter 12: Utilities
- ERROR HANDLER
- Corrected case where an incorrect error message was printed.

`machine`

(integer)- Changed the function to return a long to allow for 64-bit integers.

`mat_mul_rect_coordinate`

- Removed unnecessary memory allocation.

`mat_mul_rect_coordinate`

(complex)- Removed unnecessary memory allocation.

`mat_add_coordinate`

- Modified to make thread-safe.

`mat_add_coordinate`

(complex)- Modified to make thread-safe.

- ERROR HANDLER

- Chapter 1: Linear Systems
- Stat/Library
- Notes have been added to the documentation to indicate that very small p_values may be reported as zero.
- Chapter 2: Regression
`regression_stepwise`

- Logic was added to ensure SSE does not become a small negative number due to rounding.

`nonlinear_regression`

- Documentation was added to describe the tolerances. (documentation)
- Added a check in the Levenberg-Marquardt step to prevent an infinite loop when step length and the upper and lower L-M parameters do not change.

- Chapter 4: Analysis of Variance and Designed Experiments
`anova_nested`

- Modified the
`n_levels`

description. (documentation) - Added examples. (documentation)

- Modified the
`rcbd_factorial`

- Removed the reference to "unequal replication" from the summary description. (documentation)

`strip_plot`

- Updated documentation for optional argument
`IMSLS_TREATMENT_MEANS`

. (documentation)

- Updated documentation for optional argument
`multiple_comparisons`

- Removed reference to Duncan's MRT method in the synopsis. (documentation)

- Chapter 5: Categorical and Discrete Data Analysis
`categorical_glm`

- Added error message
`IMSLS_RANK_DEFICIENT_TERM`

which is generated when the model is rank deficient. - Corrected spelling of optional argument
`IMSLS_X_COL_VARIABLES`

. (documentation) - Improved description of optional argument IMSLS_CRITERION. (documentation)

- Added error message

- Chapter 6: Nonparametric Statistics
`wilcoxon_rank_sum`

- Corrected cases where the p-value returned was a very small negative number.
- Modified code to use tabulated values for small data sets to avoid possible access violations with exact probability calculation.

- Chapter 7: Tests of Goodness of Fit
`lilliefors_normality_test`

- The code was modified so that ties are correctly identified.
- The Description and Example were modified. (documentation)

`kolmogorov_one`

- Replaced the fatal error message when a tie occurs with a warning message specifying the total number of ties.

`kolmogorov_two`

- The formula for the Z statistic has been corrected in the document. (documentation)

`randomness_test`

- Changed the argument type expected by optional argument IMSLS_EXPECT in the documentation. (documentation)
- Updated description of optional argument
`IMSLS_RUNS`

. (documentation)

- Chapter 8: Time Series and Forecasting
`arma`

- Allow NULL arrays as input to the IMSLS_RETURN_USER optional argument when p or q equal 0.
- Updated
`IMSLS_RETURN_USER`

documentation. (documentation) - Added optional argument IMSLS_VAR_NOISE to return the innovation variance.
- Removed condition which produced excessive
`IMSLS_LEAST_SQUARES_FAILED`

warning errors. - Corrected statistical formulas. (documentation)

`max_arma`

- The gradient computation has been changed to use central differencing.

`arma_forecast`

- Corrected statistical formulas. (documentation)

- auto_uni_ar
- The amount of internal workspace required was reduced.

`ts_outlier_identification`

- Removed unnecessary array copies. (Single Precision)

`auto_arima`

- Modified to eliminate a possible infinite loop.
- Modified so that the single precision results are consistent with the double precision results.
- Updated description of example 1. (documentation)

`lack_of_fit`

- Deprecated the
`CONVERGENCE_TOLERANCE`

optional argument. The default convergence tolerance is set to`imsls_f_machine`

(4). - Changed p-value computation to be 1.0 -
`chi_squared_cdf`

(Q, df).

- Deprecated the
`estimate_missing`

- Deprecated the CONVERGENCE_TOLERANCE optional argument. The default
convergence tolerance is set to
`imsls_f_machine`

(4).

- Deprecated the CONVERGENCE_TOLERANCE optional argument. The default
convergence tolerance is set to

- Chapter 11: Probability Distribution Functions and Inverses
`hypergeometric_cdf`

- Modified to return correct results when the "sample size" and "number of defects in the lot" are set to 0.

`hypergeometric_pdf`

- Modified to return correct results when the "sample size" and "number of defects in the lot" are set to 0.`chi_squared_cdf`

- A new algorithm was implemented to improve accuracy.
- Modified so that error messages are generated only if df <=0 in contrast to df < .5 which was the behavior in the last release.

`chi_squared_inverse_cdf`

- Modified so that error messages are generated only if df <=0 in contrast to df < .5 which was the behavior in the last release.

`complementary_chi_squared_cdf`

- A new algorithm was implemented to improve accuracy.
- Modified so that error messages are generated only if df <=0 in contrast to df < .5 which was the behavior in the last release.

`non_central_chi_sq`

- A new algorithm was implemented to improve accuracy.

`non_central_chi_sq_inv`

`non_central_chi_sq_pdf`

- Code modified to prevent an intermediate infinity from being generated.

`F_cdf`

- A new algorithm was implemented to improve accuracy.

`complementary_F_cdf`

- A new algorithm was implemented to improve accuracy. Modified so that error messages are generated only if df <=0 in contrast to df < .5 which was the behavior in the last release.

`non_central_F_pdf`

- Code modified to prevent an intermediate infinity from being generated.

`non_central_F_cdf`

- Modified to improve performance
- Code modified to prevent an intermediate infinity from being generated.

`t_cdf`

- A new algorithm to improve accuracy has been implemented.

`complementary_t_cdf`

- A new algorithm was implemented to improve accuracy.

`complementary_non_central_F_cdf`

- Code modified to prevent an intermediate infinity from being generated.

`multivariate_normal_cdf`

- Changed the underlying algorithm for cases N < 4 to improve performance.

- Chapter 12: Random Number Generation
`random_student_t`

- Added example to the documentation. (documentation)

- Chapter 13: Data Mining
- Neural Network Usage Notes:
- A description about Stage I and Stage II using Quasi-Newton optimization has been added. (documentation)

`naive_bayes_trainer`

- Removed the redundant term "pointers" from the discussion of C array arguments. (documentation)

`mlff_network_trainer`

- Updated the descriptions for optional arguments for Stage I to mention the Quasi-Newton method is used with Back-Propagation. (documentation)
- Modified to return more consistent results across platforms.

- Neural Network Usage Notes:
- Chapter 15: Utilities
- ERROR HANDLER
- Corrected case where an incorrect error message was printed.

`machine`

(integer)- Changed the function to return a long to allow for 64-bit integers.

`beta_incomplete`

- Improved accuracy
- Added example code. (documentation)

- ERROR HANDLER

- Math/Library