IMSL(R) C 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 file README located in this directory.
For release dates and maintenance and support schedules, see Rogue Wave Product Lifecycle Information.
2020.0.0
- 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.
- 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.
- 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.
- 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.
2019.0.0
- Announcements
- 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.
- 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.
- 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
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.
- 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.
- 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
.
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)
- 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
.
- 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.
- Chapter 12: Random Number Generation
random_substream_seed_get
- Fixed internal initialization error.
- Error handling:
- Fixed bug in the internal handling of error messages.
2016.1.1
- Announcements
- Additions
- 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.
2016.1.0
- 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://www.roguewave.com/help-support/documentation/imsl-numerical-libraries#C. In future releases documentation will be available only at https://www.roguewave.com/help-support/documentation/imsl-numerical-libraries#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.
- 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
.
- Stat/Library
- Chapter 13: Data Mining
decision_tree
:
- Corrected a memory allocation error for response variables of ordinal type.
2016.0.0
- 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.
- 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.
- Improvements
- Math/Library
- Stat/Library
- Chapter 2: Regression
pls_regression
- Replaced ALERT message
IMSLS_RESIDUAL_CONVERGED
by WARNING message IMSLS_PLS_REGRESSION_CONVERGED
.
- Chapter 8: Time Series and Forecasting
arma
- Added optimality check for the starting point of the
ARMA
parameter optimization.
- 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.
8.6.0
- 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.
- 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.
- 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.
- 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.
- 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)
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.
8.5.0
- 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.
- 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
.
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
.
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
.
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
.
- Chapter 8: Optimization
jacobian
- Approximates the Jacobian of m functions in n unknowns using divided differences.
- 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
.
svm_classifier_free
- Frees memory allocated to an
Imsls_f_svm_model
/Imsls_d_svm_model
data structure.
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
decision_tree_free
- Frees the memory associated with a decision tree.
- 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)
- 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)
- 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.
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.
- 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)
- 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
- 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.
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)
- 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
- 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.
- 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
.
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
.
- 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.
- Chapter 11: Probability Distribution Functions and Inverses
multivariate_normal_cdf
- Corrected array indexing and initialization problems.
max_likelihood_estimates
- 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.
ga_clone_population
ga_free_individual
ga_grow_population
ga_individual
- Freed temporary arrays. Corrected document example output. (documentation)
ga_merge_population
ga_population
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)
mat_mul_rect
- Now uses
SGEMV
and SGEMM
for the general matrix case.
fopen
- Added Windows example. (documentation)
fclose
- Added Windows example. (documentation)
8.0.2
- Announcements
- 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.
- 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.
- 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.
- Chapter 12: Utilities
fopen
- Added Windows example. (documentation)
fclose
- Added Windows example. (documentation)
- 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.
- 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
.
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
ga_clone_population
ga_free_individual
ga_grow_population
ga_individual
ga_merge_population
ga_population
- Chapter 15: Utilities
fopen
- Added Windows example. (documentation)
fclose
- Added Windows example. (documentation)
8.0.1
- Announcements
- Additions
- Improvements
- Math/Library
- Chapter 10: Statistics and Random Number Generation
- covariances
- Fixed a deficiency in calculating the correlation matrix when the observations are constant.
- Stat/Library
- Chapter 3: Correlation and Covariance
- covariances
- Fixed a deficiency in calculating the correlation matrix when the observations are constant.
8.0.0
- 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
.
- 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
.
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
.
nonneg_least_squares
- Computes the non-negative least squares (NNLS) solution of an
m × n
real linear least squares system.
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.
- 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
.
- 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.
- 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.
- 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)
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)
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)
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)
- Chapter 4: Quadrature
int_fcn_sing_pts
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_alg_log
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_inf
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_trig
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_fourier
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_cauchy
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_smooth
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
int_fcn_hyper_rect
- Allow the required function to be NULL if the optional argument
IMSL_FCN_W_DATA
is present.
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.
- 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.
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.
- 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.
- 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)
rcbd_factorial
- Removed the reference to "unequal replication" from the summary description. (documentation)
strip_plot
- Updated documentation for optional argument
IMSLS_TREATMENT_MEANS
. (documentation)
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)
- 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.
- 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.
- 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).
estimate_missing
- Deprecated the CONVERGENCE_TOLERANCE optional argument. The default convergence tolerance is set to
imsls_f_machine
(4).
- 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.
- 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_inv
- 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_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.
- 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_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.
- 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)