## Complex Numbers

COMPLEX: Convert to complex type.

CONJ: Compute the complex conjugate.

DCOMPLEX: Convert to double-precision complex type.

IMAGINARY: Compute the imaginary part of a complex value.

REAL_PART: Compute the real part of a complex value.

## Correlation Analysis

A_CORRELATE: Compute the autocorrelation.

C_CORRELATE: Compute the cross correlation.

CORRELATE: Compute the linear Pearson correlation.

M_CORRELATE: Compute the multiple correlation coefficient.

P_CORRELATE: Compute the partial correlation coefficient.

R_CORRELATE: Compute the rank correlation.

## Curve and Surface Fitting

COMFIT: Fit paired data using a filtering function.

CRVLENGTH: Compute the length of a curve.

CURVEFIT: Fit multivariate data with a user-supplied function.

FUNCT: Evaluate the sum of a Gaussian and a 2nd-order polynomial.

GAUSS2DFIT: Fit a 2D elliptical Gaussian equation to rectilinearly-gridded data.

GAUSSFIT: Fit the sum of a Gaussian and a quadratic.

GRID_TPS: Use thin plate splines to interpolate a set of values over a regular 2D grid.

KRIG2D: Interpolate points to a grid using kriging.

LADFIT: Fit paired data using the least absolute deviation method.

LINFIT: Fit data to a linear model.

LMFIT: Do a non-linear least squares fit.

MIN_CURVE_SURF: Interpolate points with a minimum-curvature or thin-plate-spline surface.

POLY_FIT: Perform a least-squares polynomial fit.

REGRESS: Compute fit using multiple linear regression.

SFIT: Perform a polynomial fit to a surface.

SVDFIT: Multivariate least-squares fit using singular-value decomposition.

TRIGRID: Interpolates data to a regular grid from a triangulation.

## Differentiation and Integration

CRVLENGTH: Compute the length of a curve.

DERIV: Perform differentiation using three-point Langrangian interpolation.

DERIVSIG: Compute the standard deviation of a derivative.

INT_2D: Compute the double integral of a bivariate function.

INT_3D: Compute the triple integral of a trivariate function.

INT_TABULATED: Integrate a tabulated set of data.

LSODE: Advance a solution to a system of ordinary differential equations one time-step.

QROMB: Evaluate an integral over a closed interval.

QROMO: Evaluate an integral over an open interval.

QSIMP: Evaluate an integral using Simpson’s rule.

RK4: Solve differential equations using the fourth-order Runge-Kutta method.

## Eigenvalues and Eigenvectors

EIGENQL: Compute eigenvalues and eigenvectors of a real, symmetric array.

EIGENVEC: Compute eigenvectors of a real, non-symmetric array.

ELMHES: Reduce a nonsymmetric array to upper Hessenberg form.

HQR: Return all eigenvalues of an upper Hessenberg array.

TRIQL: Determine eigenvalues and eigenvectors of a tridiagonal array.

TRIRED: Reduce a real, symmetric array to tridiagonal form.

## Gridding and Interpolation

BILINEAR: Construct an array using bilinear interpolation.

CONGRID: Shrink or expand an array by an arbitrary amount.

GRID_INPUT: Preprocess and sorts two-dimensional scattered data points, and removes duplicate values.

GRID_TPS: Use thin plate splines to interpolate a set of values over a regular 2D grid.

GRID3: Create a 3D dataset from a set of scattered 3D nodes.

GRIDDATA: Interpolate scattered data values and locations sampled on a plane or a sphere to a regular grid.

INTERPOL: Perform linear interpolation on vectors.

INTERPOLATE: Perform linear, bilinear, or trilinear interpolation.

KRIG2D: Interpolate points to a grid using kriging.

MIN_CURVE_SURF: Interpolate points with a minimum-curvature or thin-plate-spline surface.

POLY: Interpolate a surface from polar coordinates to rectangular coordinates.

SPH_SCAT: Perform spherical gridding.

SPL_INIT: Establishe the type of interpolating spline.

SPL_INTERP: Perform cubic spline interpolation.

REBIN: Shrink or expand an array by integral multiples or factors of the original dimensions.

SPLINE: Perform cubic spline interpolation.

SPLINE_P: Perform parametric cubic spline interpolation.

TRI_SURF: Interpolate gridded set of points with a smooth quintic surface.

TRIANGULATE: Construct the Delaunay triangulation of a planar set of points.

TRIGRID: Interpolate data to a regular grid from a triangulation.

VALUE_LOCATE: Find the intervals within a vector that bracket a set of search values.

VORONOI: Compute the Voronoi polygon given the Delaunay triangulation.

## Hypothesis Testing

CTI_TEST: Perform the chi-square goodness-of-fit test.

FV_TEST: Perform the F-variance test.

KW_TEST: Perform the Kruskal-Wallis H-test.

LNP_TEST: Compute the Lomb Normalized Periodogram.

MD_TEST: Perform the Median Delta test.

R_TEST: Run tests for randomness.

RS_TEST: Perform the Wilcoxon Rank-Sum test.

S_TEST: Perform the Sign test.

TM_TEST: Perform t-means test.

XSQ_TEST: Compute the Chi-square goodness-of-fit test.

## LAPACK Routines

LA_CHOLDC: Compute the Cholesky factorization of an n-by-n symmetric positive-definite array.

LA_CHOLMPROVE: Use Cholesky factorization to improve the solution to a system of linear equations.

LA_CHOLSOL: Used in conjunction with LA_CHOLDC to solve a set of linear equations.

LA_DETERM: Use LU decomposition to compute the determinant of a square array.

LA_EIGENPROBLEM: Use the QR algorithm to compute eigenvalues and eigenvectors.

LA_EIGENQL: Compute selected eigenvalues and eigenvectors.

LA_EIGENVEC: Use the QR algorithm to compute all or some eigenvectors.

LA_ELMHES: Reduce a real nonsymmetric or complex array to upper Hessenberg from.

LA_GM_LINEAR_MODEL: Used to solve a general Gauss-Markov linear model problem.

LA_HQR: Use the multishift QR algorithm to compute eigenvalues.

LA_INVERT: Use LU decomposition to compute the inverse of a square array.

LA_LEAST_SQUARE_EQUALITY: Used to solve linear least-squares problems.

LA_LEAST_SQUARES: Used to solve linear least-squares problems.

LA_LINEAR_EQUATION: Use LU decomposition to sole a system of linear equations.

LA_LUDC: Compute the LU decomposition of an array.

LA_LUMPROVE: Use LU decomposition to improve the solution to a system of linear equations.

LA_LUSOL: Used in conjunction with LA_LUDC to solve a set of linear equations.

LA_SVD: Compute the singular value decomposition of an array.

LA_TRIDC: Compute the LU decomposition of a tridiagonal array.

LA_TRIMPROVE: Improve the solution to a system of linear equations with a tridiagonal array.

LA_TRIQL: Use the QL and QR variants of the implicitly-shifted QR algorithm to compute eigenvalues and eigenvectors.

LA_TRIRED: Reduce a real symmetric or complex Hermitian array to real tridiagonal from.

LA_TRISOL: Used in conjunction with LA_TRIDC to solve a set of linear equations.

## Linear Systems

CHOLDC: Construct the Cholesky decomposition of a matrix.

CHOLSOL: Solve a set of linear equations (use with CHOLDC).

COND: Compute the condition number of a square matrix.

CRAMER: Solve a system of linear equations using Cramer’s rule.

CROSSP: Compute vector cross product.

DETERM: Compute the determinant of a square matrix.

GS_ITER: Solve a linear system using Gauss-Seidel iteration.

IDENTITY: Return an identity array.

INVERT: Compute the inverse of a square array.

LINBCG: Solve a set of sparse linear equations using the iterative biconjugate gradient method.

LU_COMPLEX: Solve complex linear system using LU decomposition.

LUDC: Replace an array with the LU decomposition.

LUMPROVE: Use LU decomposition to iteratively improve an approximate solution.

LUSOL: Solve a set of linear equations. Use with LUDC.

NORM: Compute Euclidean norm of vector or Infinity norm of array.

SVDC: Compute Singular Value Decomposition of an array.

SVSOL: Solve a set of linear equations using back-substitution.

TRACE: Compute the trace of an array.

TRISOL: Solve a tridiagonal systems of linear equations.

## Mathematical Error Assessment

CHECK_MATH: Return and clear accumulated math errors.

FINITE: Determine if a value is finite.

MACHAR: Return machine-specific parameters for floating-point arithmetic.

## Miscellaneous Math Routines

ABS: Compute the absolute value.

CEIL: Compute the closest integer greater than or equal to X.

CIR_3PNT: Compute the radius and center of a circle, given 3 points.

COMPLEXROUND: Round a complex array.

DIAG_MATRIX: Construct a diagonal matrix from an input vector, or if given a matrix, then extracts a diagonal vector.

DIST: Create an array with each element proportional to its frequency.

EXP: Compute the natural exponential function of given expression.

FLOOR: Compute the closest integer less than or equal to argument.

IDLUNIT: Perform unit conversions and dimensional analysis.

IMAGINARY: Compute the imaginary part of a complex value.

ISHFT: Perform integer bit shift.

LEEFILT: Perform the Lee filter algorithm on an image array.

MATRIX_MULTIPLY: Calculate the matrix-multiply operator (#) of two (possibly transposed) arrays.

MATRIX_POWER: Compute the product of a matrix with itself.

PNT_LINE: Compute the perpendicular distance between a point and a line.

POLY_AREA: Compute the area of a polygon given the coordinates of its vertices.

PRIMES: Compute prime numbers.

PRODUCT: Compute the product of elements within an array.

ROUND: Compute the integer closest to its argument.

SIGNUM: Compute the sign (-1, 0, +1).

SPH_4PNT: Return center and radius of a sphere given 4 points.

SQRT: Compute the square root.

TOTAL: Sum of the elements of an array.

VOIGT: Calculate the intensity of atomic absorption line profiles.

## Multivariate Analysis

CLUST_WTS: Compute cluster weights of an array for cluster analysis.

CLUSTER: Perform cluster analysis.

CLUSTER_TREE: Compute the hierarchical clustering for a set of m items in an n-dimensional space.

CTI_TEST: Perform the chi-square goodness-of-fit test.

DENDRO_PLOT: Draw a two-dimensional dendrite plot on the Direct Graphics device.

DENDROGRAM: Construct a dendrogram and returns a set of vertices and connectivity.

DISTANCE_MEASURE: Compute the pairwise distance between a set of items or observations.

KW_TEST: Perform the Kruskal-Wallis H-test.

M_CORRELATE: Compute the multiple correlation coefficient.

P_CORRELATE: Compute the partial correlation coefficient.

PCOMP: Compute the principal components and derived variables.

STANDARDIZE: Compute standardized variables.

## Nonlinear Equations

BROYDEN: Solve nonlinear equations using Broyden’s method.

FX_ROOT: Compute real and complex roots of a univariate nonlinear function using an optimal Müller’s method.

FZ_ROOTS: Find the roots of a complex polynomial using Laguerre’s method.

NEWTON: Solve nonlinear equations using Newton’s method.

## Optimization

AMOEBA: Minimize a function using downhill simplex method.

CONSTRAINED_MIN: Minimize a function using Generalized Reduced Gradient Method.

DFPMIN: Minimize a function using Davidon-Fletcher-Powell method.

POWELL: Minimize a function using the Powell method.

SIMPLEX: Use the simplex method to solve linear programming problems.

## Probability

BINOMIAL: Compute the binomial distribution function.

CHISQR_CVF: Compute the cutoff value in a Chi-square distribution.

CHISQR_PDF: Compute the Chi-square distribution function.

F_CVF: Compute the cutoff value in an F distribution.

F_PDF: Compute the F distribution function.

GAUSS_CVF: Compute the cutoff value in Gaussian distribution.

GAUSS_PDF: Compute the Gaussian distribution function.

GAUSSINT: Compute the integral of the Gaussian probability function.

T_CVF: Compute the cutoff value in a Student’s t distribution.

T_PDF: Compute Student's t distribution.

## Sparse Arrays

**Note: **SPRSIN must be used to convert to sparse storage format before the other routines can be used.

FULSTR: Restore a sparse matrix to full storage mode.

LINBCG: Solve a set of sparse linear equations using the iterative biconjugate gradient method.

READ_SPR: Read a row-indexed sparse matrix from a file.

SPRSAB: Perform matrix multiplication on sparse matrices.

SPRSAX: Multiply a sparse matrix by a vector.

SPRSIN: Convert a matrix to row-index sparse matrix.

SPRSTP: Construct the transpose of a sparse matrix.

WRITE_SPR: Write a row-indexed sparse array structure to a file.

## Special Math Functions

BESELI: Compute the I Bessel function of order N.

BESELJ: Compute the J Bessel function of order N.

BESELK: Compute the K Bessel function of order N.

BESELY: Compute the Y Bessel function of order N.

BETA: Compute the beta function.

ERF: Compute the error function.

ERFC: Compute the complementary error function.

ERFCX: Compute the scaled complementary error function.

EXPINT: Compute the exponential integral.

GAMMA: Compute the gamma function.

IBETA: Compute the incomplete beta function.

IGAMMA: Compute the incomplete gamma function.

LAGUERRE: Compute the associated Laguerre polynomial.

LAMBERTW: Compute the Lambert W function.

LEGENDRE: Compute the associated Legendre polynomial.

LNGAMMA: Compute the logarithm of the gamma function.

POLY: Evaluate the polynomial function of a variable.

SPHER_HARM: Compute the spherical harmonic function.

## Statistical Tools

FACTORIAL: Compute the factorial function.

HIST_2D: Compute the histogram of two variables.

HISTOGRAM: Compute the density function of an array.

KURTOSIS: Compute the statistical kurtosis.

MAX: Returns the largest value (and optionally its position) of an array.

MEAN: Compute the mean.

MEANABSDEV: Compute the mean absolute deviation.

MEDIAN: Returns the median value of an array or applies a median filter.

MIN: Returns the smallest value (and optionally its position) of an array.

MOMENT: Compute mean, variance, skewness, and kurtosis.

RANDOMN: Return normally-distributed pseudo-random numbers.

RANDOMU: Return pseudo-random numbers in one of several different distributions.

RANKS: Compute magnitude-based ranks.

RUNNING_STATS: Computes the mean and variance in a stable way for large datasets.

SKEWNESS: Compute the statistical skewness of an n-element vector.

STDDEV: Compute the standard deviation.

TOTAL: Sums of the elements of an array.

VARIANCE: Compute the statistical variance.

## Time-Series Analysis

A_CORRELATE: Compute autocorrelation.

C_CORRELATE: Compute cross correlation.

SMOOTH: Smooth with a boxcar average.

TS_COEF: Compute the coefficients for autoregressive time-series.

TS_DIFF: Compute the forward differences of a time-series.

TS_FCAST: Compute future or past values of stationary time-series.

TS_SMOOTH: Compute moving averages of a time-series.

## Transcendental Functions

ACOS: Compute the arc-cosine.

ALOG: Compute the natural logarithm.

ALOG2: Compute the logarithm to the base 2.

ALOG10: Compute the logarithm to the base 10.

ASIN: Compute the arc-sine.

ATAN: Compute the arc-tangent.

COS: Compute the cosine.

COSH: Compute the hyperbolic cosine.

EXP: Compute the natural exponential function of a given expression.

SIN: Compute the trigonometric sine.

SINH: Compute the hyperbolic sine.

TAN: Compute the tangent.

TANH: Compute the hyperbolic tangent.

## Transforms

BLK_CON: Convolve input signal with impulse-response sequence.

CHEBYSHEV: Compute the forward or reverse Chebyshev polynomial expansion.

CONVOL: Convolve two vectors or arrays.

FFT: Compute the Fast Fourier Transform of an array.

HILBERT: Construct the Hilbert transform.

HOUGH: Compute the Hough transform of a two-dimensional image.

RADON: Compute the Radon transform of a two-dimensional image.

WTN: Compute the wavelet transform.

WV_CWT: Compute the continuous wavelet transform.

WV_DWT: Compute the discrete wavelet transform.

WV_PWT: Compute the partial wavelet transform.