Additional Topics > Advanced Math and Statistics

# Advanced Math and Statistics

IDL provides the Advanced Math and Stats module, which combines the power of IDL with the IMSL C Numerical Library provided by Visual Numerics, Inc. The addition of the IMSL library gives IDL users access to an extensive and powerful set of mathematical and statistical analysis routines via the standard IDL programmer’s interface.

The documentation for this module is available in the IDL Advanced Math and Statistics guide located in the `help\pdf` directory of your IDL installation. This guide includes topics such as:

## List of IMSL Routines

- IMSL_AIRY_AI —Evaluates the Airy function.
- IMSL_AIRY_BI —Evaluates the Airy function of the second kind.
- IMSL_ALLBEST—Selects the best multiple linear regression models.
- IMSL_ANOVA1—Analyzes one-way classification model.
- IMSL_ANOVABALANCED—Balanced fixed, random, or mixed model.
- IMSL_ANOVAFACT—Analyzes a balanced factorial design with fixed effects.
- IMSL_ANOVANESTED—Nested random mode.
- IMSL_ARMA —Computes method-of-moments or least-squares estimates of parameters for a nonseasonal ARMA model.
- IMSL_AUTOCORRELATION—Sample autocorrelation function.
- IMSL_BESSI—Evaluates a modified Bessel function of the first kind with real order and real or complex parameters.
- IMSL_BESSI_EXP—Evaluates the exponentially scaled modified Bessel function of the first kind of orders zero and one.
- IMSL_BESSJ—Evaluates a Bessel function of the first kind with real order and real or complex parameters.
- IMSL_BESSK—Evaluates a modified Bessel function of the second kind with real order and real or complex parameters.
- IMSL_BESSK_EXP—Evaluates the exponentially scaled modified Bessel function of the third kind of orders zero and one.
- IMSL_BESSY—Evaluates a Bessel function of the second kind with real order and real or complex parameters.
- IMSL_BETA—Evaluates the real beta function B(x,y).
- IMSL_BETACDF—Evaluates the beta probability distribution function.
- IMSL_BETAI—Evaluates the real incomplete beta function.
- IMSL_BINOMIALCDF—Evaluates the binomial distribution function.
- IMSL_BINOMIALCOEF—Evaluate binomial coefficient.
- IMSL_BINOMIALPDF—Evaluates the binomial probability function.
- IMSL_BINORMALCDF—Evaluates the bivariate normal distribution function.
- IMSL_BOXCOXTRANS—Perform Box-Cox transformation
- IMSL_BSINTERP—Computes a one- or two-dimensional spline interpolant.
- IMSL_BSKNOTS—Computes the knots for a spline interpolant.
- IMSL_BSLSQ—Computes a one- or two-dimensional, least-squares spline approximation.
- IMSL_CAT_GLM—Generalized linear models.
- IMSL_CHFAC—Computes the Cholesky factor, L, of a real or complex symmetric positive definite matrix A, such that A = LLT.
- IMSL_CHISQCDF—Evaluates the chi-squared distribution function. Using a keyword, the inverse of the chi-squared distribution can be evaluated.
- IMSL_CHISQTEST—Performs a chi-squared goodness-of-fit test.
- IMSL_CHNNDFAC—Computes the Cholesky factorization of the real matrix A such that A = RTR = LLT.
- IMSL_CHNNDSOL—Solves a real symmetric nonnegative definite system of linear equations Ax = b. Computes the solution to Ax = b given the Cholesky factor.
- IMSL_CHSOL—Solves a symmetric positive definite system of real or complex linear equations Ax = b.
- IMSL_COCHRANQ—Cochran's Q test.
- IMSL_CONLSQ—Computes a least-squares constrained spline approximation.
- IMSL_CONSTANT—Returns the value of various mathematical and physical constants.
- IMSL_CONSTRAINED_NLP—Using a sequential equality constrained quadratic programming method.
- IMSL_CONT_TABLE—Sets up a table to generate pseudorandom numbers from a general continuous distribution.
- IMSL_CONTINGENCY—Performs a chi-squared analysis of a twoway contingency table.
- IMSL_CONVOL1D—Computes the discrete convolution of two one dimensional arrays.
- IMSL_CORR1D—Compute the discrete correlation of two one-dimensional arrays.
- IMSL_COVARIANCES—Computes the sample variance-covariance or correlation matrix.
- IMSL_CSINTERP—Computes a cubic spline interpolant, specifying various endpoint conditions. The default interpolant satisfies the not-a-knot condition.
- IMSL_CSSHAPE—Computes a shape-preserving cubic spline.
- IMSL_CSSMOOTH—Computes a smooth cubic spline approximation to noisy data by using cross-validation to estimate the smoothing parameter or by directly choosing the smoothing parameter.
- IMSL_CSTRENDS—Cox and Stuarts’ sign test for trends in location and dispersion.
- IMSL_DATETODAYS—Computes the number of days from January 1, 1900, to the given date.
- IMSL_DAYSTODATE—Gives the date corresponding to the number of days since January 1, 1900.
- IMSL_DIFFERENCE—Differences a seasonal or nonseasonal time series.
- IMSL_DISCR_ANALYSIS—Perform discriminant function analysis.
- IMSL_DISCR_TABLE—Sets or retrieves the current table used in either the shuffled or GFSR random number generator
- IMSL_EIG—Computes the eigenexpansion of a real or complex matrix A. If the matrix is known to be symmetric or Hermitian, a keyword can be used to trigger more efficient algorithms.
- IMSL_EIGSYMGEN—Computes the generalized eigenexpansion of a system Ax = λBx. The matrices A and B are real and symmetric, and B is positive definite.
- IMSL_ELE—Evaluates the complete elliptic integral of the second kind E(x).
- IMSL_ELK—Evaluates the complete elliptic integral of the kind K(x).
- IMSL_ELRC—Evaluates an elementary integral from which inverse circular functions, logarithms and inverse hyperbolic functions can be computed.
- IMSL_ELRD—Evaluates Carlson’s elliptic integral of the second kind RD(x, y, z).
- IMSL_ELRF—Evaluates Carlson’s elliptic integral of the first kind RF(x, y, z).
- IMSL_ELRJ—Evaluates Carlson’s elliptic integral of the third kind RJ(x, y, z, r).
- IMSL_ERF—Evaluates the real error function erf(x). Using a keyword, the inverse error function erf-1(x) can be evaluated.
- IMSL_ERFC—Evaluates the real complementary error function erf(x). Using a keyword, the inverse complementary error function erf-1(x) can be evaluated.
- IMSL_EXACT_ENUM—Exact probabilities in a table; total enumeration.
- IMSL_EXACT_NETWORK—Exact probabilities in a table.
- IMSL_FACTOR_ANALYSIS—Extracts initial factor-loading estimates in factor analysis.
- IMSL_FAURE_INIT—Initializes the structure used for computing a shuffled Faure sequence.
- IMSL_FAURE_NEXT_PT—Generates shuffled Faure sequence.
- IMSL_FCDF—Evaluates the F distribution function. Using a keyword, the inverse of the F distribution function can be evaluated.
- IMSL_FCN_DERIV—Computes the first, second, or third derivative of a user-supplied function.
- IMSL_FCNLSQ—Computes a least-squares fit using user-supplied functions.
- IMSL_FFTCOMP—Computes discrete Fourier transform of a real or complex sequence. Using keywords, a real-to-complex transform or two-dimensional complex Fourier transform can be computed.
- IMSL_FFTINIT—Computes parameters for a one-dimensional FFT to be used in the IMSL_FFTCOMP function with keyword Init_Params.
- IMSL_FMIN—Finds the minimum point of a smooth function f (x) of a single variable using function evaluations and, optionally, through both function evaluations and first derivative evaluations.
- IMSL_FMINV—Minimizes a function f(x) of n variables using a quasi-Newton method.
- IMSL_FREQTABLE—Tallies observations into a one-way frequency table.
- IMSL_FRESNEL_COSINE—Evaluates cosine Fresnel integral.
- IMSL_FRESNEL_SINE—Evaluates sine Fresnel integral.
- IMSL_FRIEDMANS_TEST—Friedman’s test.
- IMSL_GAMMA_ADV—Evaluate the real gamma function.
- IMSL_GAMMACDF—Evaluates the gamma distribution function.
- IMSL_GAMMAI—Evaluate incomplete gamma function.
- IMSL_GARCH—Compute estimates of the parameters of a GARCH(p,q) model
- IMSL_GENEIG—Computes the generalized eigenexpansion of a system Ax = λBx.
- IMSL_GQUAD—Computes a Gauss, Gauss-Radau, or Gauss-Lobatto quadrature rule with various classical weight functions.
- IMSL_HYPERGEOCDF—Evaluates the hypergeometric distribution function.
- IMSL_HYPOTH_PARTIAL—Constructs an equivalent completely testable multivariate general linear hypothesis HβU = G from a partially testable hypothesis HpβU = Gp.
- IMSL_HYPOTH_SCPH—Computes the matrix of sums of squares and crossproducts for the multivariate general linear hypothesis HβU = G given the regression fit.
- IMSL_HYPOTH_TEST—Performs tests for a multivariate general linear hypothesis HβU = G given the hypothesis sums of squares and crossproducts matrix SH.
- IMSL_INTFCN—Integrates a user-supplied function using different combinations of keywords and parameters.
- IMSL_INTFCN_QMC—Integrates a function on a hyper-rectangle using a quasi-Monte Carlo method.
- IMSL_INTFCNHYPER—Integrates a function on a hyper-rectangle.
- IMSL_INV—Computes the inverse of a real or complex, square matrix.
- IMSL_K_MEANS—Performs a K-means (centroid) cluster analysis.
- IMSL_KALMAN—Performs Kalman filtering and evaluates the likelihood function or the state-space model.
- IMSL_KELVIN_BEI0—Evaluates the Kelvin function of the first kind, bei, of order zero.
- IMSL_KELVIN_BER0—Evaluates the Kelvin function of the first kind, ber, of order zero.
- IMSL_KELVIN_KEI0—Evaluates the Kelvin function of the second kind, kei, of order zero.
- IMSL_KELVIN_KER05—Evaluates the Kelvin function of the second kind, ker, of order zero.
- IMSL_KOLMOGOROV1—One-sample continuous data Kolmogorov- Smirnov.
- IMSL_KOLMOGOROV2—Two-sample continuous data Kolmogorov- Smirnov.
- IMSL_KTRENDS—K-sample trends test.
- IMSL_KW_TEST—Kruskal-Wallis test.
- IMSL_LACK_OF_FIT—Lack-of-fit test based on the correlation function
- IMSL_LAPLACE_INV—Computes the inverse Laplace transform of a complex function.
- IMSL_NLINLSQ—Solves a linear least-squares problem with linear constraints.
- IMSL_LINLSQ—Linear constraints
- IMSL_LINPROG—Solves a linear programming problem using the revised simplex algorithm.
- IMSL_LNBETA—Evaluate the log of the real beta function.
- IMSL_LNGAMMA—Evaluate the logarithm of the absolute value of the gamma function.
- IMSL_LNORMREGRESS—Fits a multiple linear regression model using criteria other than least squares.
- IMSL_LUFAC—Computes the LU factorization of a real or complex matrix.
- IMSL_LUSOL—Solves a general system of real or complex linear equations Ax = b.
- IMSL_MACHINE—Returns information describing the computer’s arithmetic.
- IMSL_MATRIX_NORM—Computes various norms of a rectangular matrix, a matrix stored in band format, and a matrix stored in coordinate format.
- IMSL_MINCONGEN—Minimizes a general objective function subject to linear equality/inequality constraints.
- IMSL_MULTICOMP—Performs Student-Newman-Keuls multiplecomparisons test.
- IMSL_MULTIPREDICT—Computes predicted values, confidence intervals, and diagnostics after fitting a regression model.
- IMSL_MULTIREGRESS—Fits a multiple linear regression model using least squares and optionally compute summary statistics for the regression model.
- IMSL_MVAR_NORMALITY—Mardia’s test for multivariate normality.
- IMSL_NCTRENDS—Noehter’s test for cyclical trend.
- IMSL_NLINLSQ—Solves a nonlinear least-squares problem using a modified Levenberg-Marquardt algorithm.
- IMSL_NONLINOPT—Fits data to a nonlinear model (possibly with linear constraints) using the successive quadratic programming algorithm (applied to the sum of squared errors, sse = Σ(yi − f(xi; θ))2) and either a finite difference gradient or a user-supplied gradient.
- IMSL_NONLINREGRESS—Fits a nonlinear regression model.
- IMSL_NORM—Computes various norms of a vector or the difference of two vectors.
- IMSL_NORMALCDF—Evaluates the standard normal (Gaussian) distribution function. Using a keyword, the inverse of the standard normal (Gaussian) distribution can be evaluated.
- IMSL_NORM1SAMP—Computes statistics for mean and variance inferences using a sample from a normal population.
- IMSL_NORM2SAMP—Computes statistics for mean and variance inferences using samples from two independently normal populations.
- IMSL_NORMALITY—Performs a test for normality.
- IMSL_ODE—Adams-Gear or Runge-Kutta method.
- IMSL_PARTIAL_AC—Sample partial autocorrelation function.
- IMSL_PARTIAL_COV—Partial correlations and covariances.
- IMSL_PDE_MOL—Solves a system of partial differential equations of the form ut = f(x, t, u, ux, uxx) using the method of lines. The solution is represented with cubic Hermite polynomials.
- IMSL_POISSON2D—Solves Poisson’s or Helmholtz’s equation on a two-dimensional rectangle using a fast Poisson solver based on the HODIE finite difference scheme on a uniform mesh.
- IMSL_POISSONCDF—Evaluates the Poisson distribution function.
- IMSL_POLYPREDICT—Computes predicted values, confidence intervals, and diagnostics after fitting a polynomial regression model.
- IMSL_POLYREGRESS—Performs a polynomial least-squares regression.
- IMSL_POOLED_COV—Pooled covariance matrix.
- IMSL_PRINC_COMP—Computes principal components.
- IMSL_QRFAC—Computes the QR factorization of a real matrix A.
- IMSL_QRSOL—Solves a real linear least-squares problem Ax = b.
- IMSL_QUADPROG—Solves a quadratic programming (QP) problem subject to linear equality or inequality constraints.
- IMSL_RADBE—Evaluates a radial-basis fit computed by IMSL_RADBF.
- IMSL_RADBF—Computes an approximation to scattered data in Rn for n ≥ 2 using radial-basis functions.
- IMSL_RAND_FROM_DATA—Generates pseudorandom numbers from multivariate distribution determined from a given sample.
- IMSL_RAND_GEN_CONT—Generates pseudorandom numbers from a general continuous distribution.
- IMSL_RAND_GEN_DISCR—Generates pseudorandom numbers from a general discrete distribution using an alias method or optionally a table lookup method.
- IMSL_RAND_ORTH_MAT—Generates a pseudorandom orthogonal matrix or a correlation matrix
- IMSL_RAND_TABLE_2WAY—Generates a pseudorandom two-way table.
- IMSL_RANDOM—Generates pseudorandom numbers. The default distribution is a uniform (0, 1) distribution, but many different distributions can be specified through the use of keywords.
- IMSL_RANDOM_ARMA—Generate pseudorandom IMSL_ARMA process numbers.
- IMSL_RANDOM_NPP—Generates pseudorandom numbers from a nonhomogeneous Poisson process.
- IMSL_RANDOM_ORDER—Generates pseudorandom order statistics from a standard normal distribution.
- IMSL_RANDOM_SAMPLE—Generates a simple pseudorandom sample from a finite population
- IMSL_RANDOM_TABLE—Sets or retrieves the current table used in either the shuffled or GFSR random number generator.
- IMSL_RANDOMNESS_TEST—Runs test, Paris-serial test, d2 test or triplets tests.
- IMSL_RANDOMOPT—Uses keywords to set or retrieve the random number seed or to select the uniform (0, 1) multiplicative, congruential pseudorandom-number generator.
- IMSL_RANKS—Computes the ranks, normal scores, or exponential scores for a vector of observations.
- IMSL_REGRESSORS—Generates regressors for a general linear model.
- IMSL_ROBUST_COV—Robust estimate of covariance matrix.
- IMSL_SCAT2DINTERP—Computes a smooth bivariate interpolant to scattered data that is locally a quintic polynomial in two variables.
- IMSL_SIGNTEST—Performs a sign test.
- IMSL_SIMPLESTAT—Computes basic univariate statistics.
- IMSL_SMOOTHDATA1D—Smooth one-dimensional data by error detection.
- IMSL_SORTDATA—Sorts observations by specified keys, with option to tally cases into a multiway frequency table.
- IMSL_SP_BDFAC—Compute the LU factorization of a matrix stored in band storage mode.
- IMSL_SP_BDPDFAC—Compute the RTR Cholesky factorization of symmetric positive definite matrix, A, in band symmetric storage mode.
- IMSL_SP_BDPDSOL—Solve a symmetric positive definite system of linear equations Ax = b in band symmetric storage mode.
- IMSL_SP_BDSOL—Solve a general band system of linear equations Ax = b.
- IMSL_SP_CG—Solve a real symmetric definite linear system using a conjugate gradient method. Using keywords, a preconditioner can be supplied.
- IMSL_SP_GMRES—Solve a linear system Ax = b using the restarted generalized minimum residual (GMRES) method.
- IMSL_SP_LUFAC—Compute an LU factorization of a sparse matrix stored in either coordinate format or CSC format.
- IMSL_SP_LUSOL—Solve a sparse system of linear equations Ax = b.
- IMSL_SP_MVMUL—Compute a matrix-vector product involving sparse matrix and a dense vector.
- IMSL_SP_PDFAC—Solve a sparse symmetric positive definite system of linear equations Ax = b.
- IMSL_SP_PDSOL—Solve a sparse symmetric positive definite system of linear equations Ax = b.
- IMSL_SPINTEG—Computes the integral of a one- or two-dimensional spline.
- IMSL_SPVALUE—Computes values of a spline or values of one of its derivatives.
- IMSL_STATDATA—Retrieves commonly analyzed data sets.
- IMSL_STEPWISE—Builds multiple linear regression models using forward, backward, or stepwise selection.
- IMSL_SURVIVAL_GLM—Analyzes survival data using a generalized linear model and estimates using various parametric modes.
- IMSL_SVDCOMP—Computes the singular value decomposition (SVD), A=USVT, of a real or complex rectangular matrix A. An estimate of the rank of A also can be computed.
- IMSL_TCDF—Evaluates the Student’s t distribution function.
- IMSL_TIE_STATS—Tie statistics.
- IMSL_WILCOXON—Performs a Wilcoxon rank sum test.
- IMSL_ZEROFCN—Finds the real zeros of a real function using Müller’s method.
- IMSL_ZEROPOLY—Finds the zeros of a polynomial with real or complex coefficients using the companion matrix method or, optionally, the Jenkins- Traub, three-stage algorithm.
- IMSL_ZEROSYS—Solves a system of n nonlinear equations using a modified Powell hybrid algorithm.
- PM—Performs formatted output of arrays using the standard linear algebraic convention.
- RM—Performs formatted input of arrays using the standard linear algebraic convention.