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.

- Announcements
- Notice to customers using JMSL Charting: the charting functions have been moved to a separately distributable JAR that is only available upon request. Future development and distribution options will be determined based on customer requests for this product. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement.
- Notice to customers using Java3D: this will be the last planned version to support Java3D in the chart module. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement.
- Notice to customers using Java3D: Java3D libraries are not distributed with the chart product. Java3D must be downloaded separately. Please contact your Rogue Wave account representative or Rogue Wave support with any questions concerning this announcement.
- IMSL is transitioning toward online only documentation. Currently documentation is available with the installation of the product and on our website https://www.roguewave.com/help-support/documentation/imsl-numerical-libraries#java. In future releases documentation will be available only at https://www.roguewave.com/help-support/documentation/imsl-numerical-libraries#java
- 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
`com.imsl.stat`

- Regression
`LinearRegression`

- Added a new method that returns the right-hand side
*d*of the upper triangular system*Rx=d*from the QR-transformed regression problem. - Added a new method that returns the column permutation used in the QR decomposition of the regression problem.

- Added a new method that returns the right-hand side

- Regression
`com.imsl.datamining`

- Data Mining
`PredictiveModel`

- Added a new method to return the constant series flag.

- Data Mining

- Improvements
`com.imsl.math`

- Linear Systems
`SVD`

: Corrected sign in formula for shift calculation.

- Optimization
`BoundedLeastSquares`

- Corrected the procedure for checking the stopping criteria at the initial point.

`QuadraticProgramming`

- Corrected computation of constraint inconsistencies.
- Relaxed error tolerance slightly to allow for a wider range of problems to be solved.

`MinConNLP`

- Fixed index-out-of-range issue that occurred when lower or upper bounds on the variables were set via methods
`setXlowerBound`

and`setXupperBound`

, respectively.

- Fixed index-out-of-range issue that occurred when lower or upper bounds on the variables were set via methods

- Linear Systems
`com.imsl.stat`

- Regression
`LinearRegression`

- Added column pivoting capability to the QR decomposition in order to fix problems with matrices of regressors that are not full column rank.

- Time Series and Forecasting
`ARMA`

- Added exception that is thrown if the absolute values of the time series residuals during the ARMA parameter estimation become too large.

`AutoARIMA`

- Fixed bug in the setup of the matrix for joint outlier detection.
- Improved performance of outlier detection, resulting in significant improvements in overall performance for cases involving many potential outliers.

- Regression
`com.imsl.stat.distributions`

- Maximum Likelihood Estimation
`MaximumLikelihoodEstimation`

- Corrected variance-covariance matrix output from method
`getVarCov`

.

- Corrected variance-covariance matrix output from method

- Maximum Likelihood Estimation
`com.imsl.datamining`

- Data Mining
`PredictiveModel`

- Corrected the error handling of a constant response series.

`PredictiveModel`

- Corrected an error in setting the number of classes.

`PredictiveModel`

- Added an error check in setNumberOfClasses.

`GradientBoosting`

- Corrected a bug when testData is null.

`GradientBoosting`

- Removed class variables that conflicted with the PredictiveModel parent class.

`GradientBoosting`

- Corrected handling of different base learner exceptions.

- Data Mining
`com.imsl.datamining.decisionTrees`

- Decision Trees
`DecisionTree`

- Improved performance of the partitioning algorithms.

`DecisionTree`

- Corrected a bug in initializing the root node.

`DecisionTree`

- Changed the code to handle empty classes.

`GradientBoosting`

- Corrected a bug when testData is null.

`GradientBoosting`

- Removed class variables that conflicted with the PredictiveModel parent class.

`GradientBoosting`

- Changed the code to handle different levels of exceptions from the base learner.

- Decision Trees

- Announcements
- none

- Additions
`com.imsl.stat`

- Basic Statistics
`PooledCovariances`

- Computes the pooled variance-covariance matrix from one or more sets of observations.

`RandomSamples`

- Generates a simple pseudorandom sample from a finite population, a sample of indices, or a permutation of an array of indices.

- Basic Statistics
`com.imsl.stat.distributions`

- Probability Distributions and Parameter Estimation
`ContinuousUniformPD`

- The continuous uniform probability distribution

`ExponentialPD`

- The exponential probability distribution

- Probability Distributions and Parameter Estimation
`com.imsl.datamining`

- Data Mining
`BootstrapAggregation`

- Added new methods to get out-of-bag predictions.

`BootstrapAggregation`

- Added new method to get variable importance measures based on out-of-bag predictions.

`PredictiveModel`

- Added new methods to set and get maximum iterations.

`PredictiveModel`

- Added new method to get estimated class probabilities.

- Data Mining
`com.imsl.datamining.decisionTrees`

- Decision Trees
`RandomTrees`

- Performs a random forest ensemble method for decision trees.

- Decision Trees
`com.imsl.datamining.supportvectormachine`

- Support Vector Machines
`SupportVectorMachine`

- Abstract class for support vector machines

`SVClassification`

- Performs support vector machine optimization and prediction for classification problems.

`SVRegression`

- Performs support vector machine optimization and prediction for regression problems.

`SVOneClass`

- Performs support vector machine optimization and prediction for the one-class problem.

`Kernel`

- Abstract class for kernel functions used in support vector machines

`LinearKernel`

- The linear kernel function

`PolynomialKernel`

- The polynomial kernel function

`RadialBasisKernel`

- The radial basis kernel function

`SigmoidKernel`

- The sigmoid kernel function

- Support Vector Machines

- Improvements
`com.imsl.stat`

- Time Series and Forecasting
`ARMA`

- Added optimality check for the starting point of the ARMA parameter optimization.

`AutoARIMA`

- Corrected forecast computation for time series that do not start with time value 1.

- Time Series and Forecasting

- Announcements
- none

- Additions
- none

- Improvements
`General`

- Made various grammatical and typographical corrections to the documentation.
- Updated Data Mining Usage Notes of chapter 29.

`com.imsl.stat`

- Regression
`StepwiseRegression.getCoefficientTTests`

- Clarified return value documentation.

- Time Series and Forecasting
`ARMA`

- Added a new exception for nonstationary and noninvertible method of moment estimates.

`ARMA`

- Added new methods to set and get maximum iterations and function evaluations.

`ARMA`

- Corrected a bug in setting the maximum iterations.

`ARMAMaxLikeLihood`

- Added a check for nonstationary and noninvertible initial estimates.

- Multivariate Analysis
`ClusterKMeans`

- Added the K-means++ algorithm to select the initial cluster centers.

- Regression

- Announcements
- none

- Additions
`com.imsl.datamining`

- Predictive Models
`GradientBoosting`

- Performs stochastic gradient boosting for classification or regression problems.

- Decision Trees
`DecisionTrees.getNodeAssignments`

- Returns node assignments for a set of test data.

- Predictive Models

- Improvements
- none

- Announcements
- The DTD support for XML charting is now located at http://www.roguewave.com/products/jmsl/chart.dtd.
- Some JMSL classes require user defined methods. It is the responsibility of the user to assure that these methods do not return NaN, infinity or negative infinity values.
- The QuickStart Guide is no longer offered.
- Use of JMSL requires a Java development environment, such as Oracle's JDK 7.0.
- Class
`SparseLP`

can accept inputs in Compressed Sparse Column (CSC), or Harwell-Boeing format. See Users' Guide for the Harwell-Boeing Sparse Matrix Collection. - Variable length argument lists (varargs) do not display correctly in the documentation. A note has been added where this occurs and the issue will be corrected in the future.
- In addition to the jar file,
`jmsl.jar`

, users have the option of using jar files containing subsets of the entire product. The jar file,`jmslnumerics.jar`

, does not contain any references to javax.swing or JMSL charting classes. The jar file,`jmslchart.jar`

, contains the JMSL charting classes. It does not contain any of the numeric classes. - For Windows-based systems, the user may experience different results between OpenGL and Direct 3D (D3D) when printing JMSL 3D graphs. These differences may be related to differences in video hardware and drivers, as well as versioning issues of OpenGL and D3D. The user should experiment with each method to determine the optimal method for printing 3D graphs. The default is to use OpenGL. To use D3D set the Java system property
`j3d.rend`

to`d3d`

. This can be done on the command line using the option`-Dj3d.rend=d3d`

. **Serialization of JMSL classes will not be compatible with future JMSL releases.**The current serialization support is appropriate for short term storage or RMI between applications running the same version of JMSL.

- Additions
`General`

- New information in Chapter 1: Introduction on Compressed Sparse Column (CSC) Format.

`com.imsl.math`

- Optimization
`SparseLP`

- Solves a sparse linear programming problem.

- Optimization
`com.imsl.stat`

- Basic Statistics
`Sort.ascending(int[][] ia, int nKeys)`

- Sorts a matrix into ascending order by the first
`nKeys`

.

- Sorts a matrix into ascending order by the first
`Sort.ascending(int[][] ia, int nKeys, int[] iperm)`

- Sorts a matrix into ascending order according to the first
`nKeys`

keys and returns the permutation vector.

- Sorts a matrix into ascending order according to the first
`Sort.ascending(int[][] ia, int[] indkeys, int[] iperm)`

- Sorts a matrix into ascending order by specified keys and returns the permutation vector.

- Basic Statistics

- Improvements
`General`

- Made various grammatical and typographical corrections to the documentation.

`com.imsl.math`

- Special Functions
`Bessel.J(double x, int n)`

- Resolved discrepant signs in the answer.

`Bessel.J(double xnu, double x, int n)`

- Updated input checks to be consistent with the documentation.

- Special Functions
`com.imsl.io`

- Input/Output
`MPSReader.getLowerRange`

- Corrected bug in reading the RANGES section in an MPS file.

- Input/Output
`com.imsl.datamining`

- Datamining
`Apriori`

- Corrected confidence value calculations.

`Apriori`

- Improved memory handling for large candidate itemsets.

`Itemsets.getItemsetsMatrix`

- The format of the returned matrix has been reformatted to conserve memory.

`PredictiveModel`

`PredictiveModel.VariableType.IGNORE`

is now handled correctly.

- Datamining
`com.imsl.datamining.decisionTree`

- Decision Tree
`CHAID`

`PredictiveModel.VariableType.IGNORE`

is now handled correctly.

- Decision Tree

- Announcements
- none

- Additions
`com.imsl.math`

- Optimization
`MinUnconMultiVar.getNumberOfThreads`

- Returns the number of
`Thread`

s used for parallel processing.

- Returns the number of
`MinUnconMultiVar.setNumberOfThreads`

- Sets the number of
`Thread`

s to be used for parallel processing.

- Sets the number of
`NonlinLeastSquares.getNumberOfThreads`

- Returns the number of
`Thread`

s used for parallel processing.

- Returns the number of
`NonlinLeastSquares.setNumberOfThreads`

- Sets the number of
`Thread`

s to be used for parallel processing.

- Sets the number of
`MinConGenLin.getNumberOfThreads`

- Returns the number of
`Thread`

s used for parallel processing.

- Returns the number of
`MinConGenLin.setNumberOfThreads`

- Sets the number of
`Thread`

s to be used for parallel processing.

- Sets the number of
`BoundedLeastSquares.getNumberOfThreads`

- Returns the number of
`Thread`

s used for parallel processing.

- Returns the number of
`BoundedLeastSquares.setNumberOfThreads`

- Sets the number of
`Thread`

s to be used for parallel processing.

- Sets the number of
`MinConNLP.getNumberOfThreads`

- Returns the number of
`Thread`

s used for parallel processing.

- Returns the number of
`MinConNLP.setNumberOfThreads`

- Sets the number of
`Thread`

s to be used for parallel processing.

- Sets the number of
`MinConNLP.getOptimalValue`

- Returns the optimal value of the objective function.

`QuadraticProgramming.getOptimalValue`

- Returns the optimal value of the objective function.

- Optimization
`com.imsl.stat`

- Basic Statistics
`Summary.getNumberOfObservations`

- Returns the number of non-missing observations.

`Summary.numberOfObservations`

- Returns the number of non-missing observations in the given data set.

- Time Series and Forecasting
`AutoCorrelation.getNumberOfThreads`

- Returns the number of
`Thread`

s used for parallel processing.

- Returns the number of
`AutoCorrelation.setNumberOfThreads`

- Sets the number of
`Thread`

s to be used for parallel processing.

- Sets the number of
`HoltWintersExponentialSmoothing`

- Implements Holt-Winters triple exponential smoothing for a univariate time series.

`TimeSeries`

- Describes data as a time series.

`TimeSeriesOperations`

- Provides methods to perform operations on TimeSeries objects.

`VectorAutoregression`

- Provides methods for vector autoregression (VAR).

- Multivariate Analysis
`ClusterKNN`

- Performs a k-Nearest Neighbor classification.

- Probability Distribution Functions and Inverses
`Cdf.complementaryNoncentralF`

- Evaluates the complementary noncentral
*F*cumulative distribution function.

- Evaluates the complementary noncentral

- Basic Statistics
`com.imsl.stat.distributions`

- Probability Distributions and Parameter Estimation
`ProbabilityDistribution`

- Abstract class for univariate probability distributions

`PDFGradientInterface`

- Interface for a ProbabilityDistribution which provides a pdf gradient

`PDFHessianInterface`

- Interface for a ProbabilityDistribution which provides a pdf hessian

`MaximumLikelihoodEstimation`

- Computes maximum likelihood estimates for univariate probability distributions.

`BetaPD`

- The beta probability distribution

`GammaPD`

- The gamma probability distribution

`NormalPD`

- The normal or Gaussian probability distribution

- Probability Distributions and Parameter Estimation
`com.imsl.finance`

- Finance
`DayCountBasis.setEOM`

- Specifies whether to use the End-Of-Month rule.

`Bond.price`

- Evaluates the price of an odd first period (long and short) coupon bond, given its yield.

`Bond.price`

- Evaluates the price of an odd last period (long and short) coupon bond, given its yield.

`Bond.yield`

- Evaluates the yield of a security with an odd first (long and short) coupon period that pays periodic interest, given its price.

`Bond.yield`

- Evaluates the yield of a security with an odd last (long and short) coupon period that pays periodic interest, given its price.

- Finance
`com.imsl.datamining`

- Datamining
`Apriori`

- Implements the Apriori algorithm.

`Itemsets`

- Describes the sets of items discovered by the Apriori algorithm.

`AssociationRule`

- Describes the association rules generated by the Apriori algorithm.

- Kohonen Self Organizing Map
`KohonenSOM`

- Describes a Kohonen map.

`KohonenSOMTrainer`

- Abstract class for training a Kohonen network

- Predictive Models
`PredictiveModel`

- Abstract class for predictive models

`BootstrapAggregation`

- Performs bootstrap aggregation for predictive models.

`CrossValidation`

- Performs cross validation for predictive models.

- Datamining
`com.imsl.datamining.decisionTree`

- Decision Tree
- Decision Tree Chapter Introduction
- Details decision tree analysis.

`ALACART`

- Implements the ALACART method for generating a decision tree.

`C45`

- Implements the C45 method for generating a decision tree.

`CHAID`

- Implements the CHAID method for generating a decision tree.

`QUEST`

- Implements the QUEST method for generating a decision tree.

`DecisionTree`

- Abstract class for generating decision trees

`DecisionTreeInfoGain`

- Extends DecisionTree for methods which use an information gain criteria.

`Tree`

- The decision tree structure

`TreeNode`

- A DecisionTree node which may be used as a child node of Tree

- Decision Tree Chapter Introduction

- Decision Tree

- Improvements
`General`

- Made various grammatical and typographical corrections to the documentation.
- The product is no longer license-managed for users who have purchased the product.

`com.imsl.math`

- Linear Systems
`ComplexMatrix`

- Added new exception handling for parallel processing.

`Matrix`

- Added new exception handling for parallel processing.

`SuperLU`

- Resolved missing warning message in message resource file.

- Eigensystem Analysis
`SymEigen`

- Adjustments were made to the calculation of the scaling factor.

`SymEigen`

- Corrected eigenvalue and eigenvector calculation.

- Optimization
`MinUnconMultiVar`

- Class has been parallelized.

`NonlinLeastSquares`

- Class has been parallelized.

`NonlinLeastSquares`

- Changed exception to a warning and added a test to break out of a while loop to prevent a possible infinite loop.

`MinConGenLin`

- Class has been parallelized.

`MinConNLP`

- Class has been parallelized.

`BoundedLeastSquares`

- Class has been parallelized.

`BoundedLeastSquares`

- Changed exception to a warning and added a test to break out of a while loop to prevent a possible infinite loop.

`BoundedLeastSquares.getJacobian`

- Now returns the Jacobian whether specified by the user or not.

- Special Functions
`Sfun.logGammaCorrection`

- Deprecated.

- Linear Systems
`com.imsl.finance`

-`Bond.price`

- Updated the price calculation when the number of coupons n=1. -`Bond.yield`

- Improved the zero root finder in the yield calculation. -`Bond.yield`

- Relaxed the lower bound of 0 from the yield calculation.`com.imsl.stat`

- Basic Statistics
`Summary.maximum`

- Corrected bug which causes incorrect values to be returned when input has NaNs.

`Summary.minimum`

- Corrected bug which causes incorrect values to be returned when input has NaNs.

`NormOneSample.setConfidenceMean`

- Updated the documentation.

`NormTwoSample`

- Updated the documentation.

`NormTwoSample`

- Enhanced the treatment of missing values.

`NormTwoSample`

- Corrected bug which causes incorrect values to be returned when update methods are used.

`NormTwoSample.getTTestDF`

- Corrected bug which calculates the degrees of freedom incorrectly when a sample has only one observation.

`Covariances`

- Corrected bug producing incorrect results for constant variables.

`Sort`

- Updated the documentation.

`TableMultiWay`

- Updated the documentation.

`TableMultiWay`

- Corrected bug in applying user defined frequencies in unbalanced tables.

- Regression
`NonlinearRegression`

- Changed exception to a warning and added a test to break out of a while loop to prevent a possible infinite loop.

- Nonparametric Statistics
`WilcoxonRankSum`

- Enhanced the treatment of missing values.

`WilcoxonRankSum`

- Added the exact p-values calculation.

`WilcoxonRankSum`

- Modified the use of a correction term so that negative p-values do not occur.

`WilcoxonRankSum`

- Switched to using tabulated p-values for small sample sizes to avoid a state where an access violation could occur.

- Time Series and Forecasting
`AutoCorrelation`

- Class has been parallelized.

`ARAutoUnivariate`

- Improved memory usage.

`ARMA`

- Corrected under allocation of space for unconstrained nonlinear least squares solver.

`ARMA`

- Added check to confirm the number of parameters is less than or equal to the number of squared residuals for the unconstrained nonlinear least squares

`ARMA`

`GARCH.getAR`

- Deprecated.

`GARCH.getMA`

- Deprecated.

`GARCH.getGARCH`

- Returns the estimated values of the GARCH coefficients.

`GARCH.getARCH`

- Returns the estimated values of the ARCH coefficients.

`GARCH.getX`

- Updated the documentation.

`LackOfFit`

- Corrected bug in calculating p-value.

- Basic Statistics
`com.imsl.io`

- Input/Output
`AbstractFlatFile`

- Created empty methods to implement new interface methods in
`ResultSet`

for JDK 1.6 and 1.7.

- Created empty methods to implement new interface methods in
`FlatFile`

- Created empty methods to implement new interface methods in
`ResultSet`

for JDK 1.6 and 1.7.

- Created empty methods to implement new interface methods in

- Input/Output