Professional Documents
Culture Documents
IMSL
FUNCTION
w w w . v n i . c o m
CATALOG
TABLE OF CONTENTS
I NTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
M ATHEMATICAL F UNCTIONALITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
S TATISTICAL F U N C T I O N A L I T Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Linear Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Eigensystem Analysis . . . . . . . . . . . . . . . . . . . . . . . . . .8
Interpolation and Approximation . . . . . . . . . . . . . . . . . .8
Quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Differential Equations . . . . . . . . . . . . . . . . . . . . . . . . . .10
Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Nonlinear Equations . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Special Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Statistics and Random Number Generation . . . . . . . . . . .13
Printing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
Numeric Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
The IMSL C Numerical Library ("CNL") is a comprehensive set of over 300 pre-built
mathematical and statistical analysis functions that C or C++ programmers can embed
directly into their numerical analysis applications. CNL's functions are based upon the
same algorithms contained in the company's highly regarded IMSL Fortran 90 MP Library.
Visual Numerics, Inc. has been providing algorithms for mathematical and statistical
computations under the IMSL name since 1970.
With CNL, we provide "building blocks" which eliminate the need to write code from
scratch. These prepackaged functions allow you to apply your industry-specific expertise
and reduce your development time.
CNL takes full advantage of the intrinsic characteristics and desirable features of the C
language. Variable argument lists simplify calling sequences. The concise set of required
arguments contains only information necessary for usage. Optional arguments provide
added functionality and power to each function.
CNL has also been designed to take advantage of symmetric multiprocessor (SMP) systems.
Computationally intensive algorithms in areas such as linear algebra and fast Fourier
transforms will leverage SMP capabilities on a variety of systems. By allowing you to
replace the generic Basic Linear Algebra Subprograms ("BLAS") contained in CNL with
optimized BLAS from your hardware vendor, you can improve the performance of your
numerical calculations.
You can build applications that are portable across multiple platforms. CNL is available for
computer systems running UNIX and Windows operating systems.
Extensive online documentation provides powerful search capabilities with hundreds of
code examples.
Rely on the industry leader for software that is expertly developed, thoroughly tested,
meticulously maintained and well documented. GET RELIABLE RESULTS EVERY
TIME!
ERROR HANDLING
Diagnostic error messages are clear and informative - designed not only to convey the error
condition but also to suggest corrective action if appropriate.
These error-handling features:
Make it faster and easier for you to debug your programs.
Provide for more productive programming and confidence that the algorithms are
functioning properly in your application.
COMPREHENSIVE DOCUMENTATION
Documentation for CNL is comprehensive, clearly written and standardized. Detailed
information about each function is found in a single source within a chapter and consists of
section name, purpose, synopsis, required and optional arguments, errors, return values and
usage examples. Each manual's alphabetical index enables convenient cross-referencing.
IMSL documentation:
Provides organized, easy-to-find information.
Extensively documents, explains and provides references for algorithms.
Gives at least one example of function usage, with sample input and results.
MATHEMATICAL FUNCTIONALITY
The IMSL C Numerical Library is a collection of the most commonly needed numerical
functions customized for your C programming needs. The mathematical functionality is
organized into 10 sections. These capabilities range from solving systems of linear equations to optimization.
Linear Systems, including real and complex full and sparse matrices, linear least
squares, matrix decompositions, generalized inverses and vector-matrix operations.
Eigensystem Analysis, including eigenvalues and eigenvectors of complex, real
symmetric and complex Hermitian matrices.
Interpolation and Approximation, including constrained curve-fitting splines, cubic
splines, least-squares approximation and smoothing, and scattered data interpolation.
Integration and Differentiation, including univariate, multivariate and Gauss
quadrature.
Differential Equations, using Adams-Gear and Runge-Kutta methods for stiff and
nonstiff ordinary differential equations and support for partial differential equations.
Transforms, including real and complex one- and two-dimensional fast Fourier
transforms, as well as convolutions and correlations and Laplace transforms.
Nonlinear Equations, including zeros and root finding of polynomials, zeros of a
function and root of a system of equations.
Optimization, including unconstrained, and linearly and nonlinearly constrained
minimizations.
Special Functions, including error and gamma functions, real order complex valued
Bessel functions and statistical functions, such as chi-squared and inverse beta and
many others.
Utilities, including CPU time used, error handling and machine, mathematical,
physical constants, retrieval of machine constants, changing error-handling defaults,
and performing matrix-matrix multiplication.
STATISTICAL FUNCTIONALITY
The statistical functionality is organized into 12 sections. These capabilities range from
analysis of variance to random number generation.
Basic Statistics, including univariate summary statistics, nonparametric tests, such as
sign and Wilcoxon rank sum, and goodness-of-fit tests, such as chi-squared and
Shapiro-Wilk.
Regression, including stepwise regression, all best regression, multiple linear
regression models, polynomial models and nonlinear models.
Correlation and Covariance, including sample variance-covariance, partial correlation
and covariances, pooled variance-covariance and robust estimates of a covariance
matrix and mean factor.
Analysis of Variance, including one-way classification models, a balanced factorial
design with fixed effects and the Student-Newman-Keuls multiple comparisons test.
Categorical and Discrete Data Analysis, including chi-squared analysis of a two-way
contingency table, exact probabilities in a two-way contingency table and analysis of
categorical data using general linear models.
Nonparametric Statistics, including sign tests, Wilcoxon sum tests and Cochran Q
test for related observations.
Tests of Goodness-of-Fit, including chi-squared goodness-of-fit tests, Kolmogorov/
Smirnov tests and tests for normality.
Time Series Analysis and Forecasting, including analysis and forecasting of time
series using a nonseasonal ARMA model, GARCH (Generalized Autoregressive
Conditional Heteroscedasticity), portmanteau lack of fit test and difference of a
seasonal or nonseasonal time series.
Multivariate Analysis, including principal components, K-means cluster analysis and
factor analysis. Methods of factor analysis include principal components, principal
factor, image analysis, unweighted least squares, generalized least squares and
maximum likelihood.
Survival Analysis, including analysis of data using a generalized linear model and
using various parametric models.
Probability Distribution Functions and Inverses, including binomial, hypergeometric, bivariate normal, gamma and many more.
Random Number Generation, including a generator for multivariate normal
distributions and pseudorandom numbers from several distributions, including
gamma, Poisson and beta.
L INEAR S YSTEMS
lin_sol_gen
lin_lsq_lin_constraints
lin_sol_gen (complex)
lin_svd_gen
lin_sol_posdef
lin_svd_gen (complex)
lin_sol_nonnegdef
lin_sol_gen_band
E IGENSYSTEM A NALYSIS
lin_sol_gen_band (complex)
eig_gen
lin_sol_posdef _band
eig_gen (complex)
eig_sym
lin_sol_gen_coordinate
eig_symgen
lin_sol_gen_coordinate (complex)
lin_sol_gen_min_residual
I NTERPOLATION AND
A PPROXIMATION
cub_spline_interp_e_cnd
lin_least_squares_gen
cub_spline_interp_shape
10
cub_spline_value
radial_scattered_fit
cub_spline_integral
radial_evaluate
spline_interp
Q UADRATURE
spline_2d_interp
Int_fcn_sing
Integrates a function, which may have endpoint singularities, using a globally adaptive scheme based on
Gauss-Kronrod rules.
spline_value
int_fcn
spline_integral
int_fcn_sing_pts
spline_2d_value
int_fcn_alg_log
spline_2d_integral
int_fcn_inf
user_fcn_least_squares
int_fcn_trig
spline_least_squares
int_fcn_fourier
spline_2d_least_squares
int_fcn_cauchy
cub_spline_smooth
int_fcn_smooth
gauss_quad_rule
11
fcn_derivative
fft_sine_init
D IFFERENTIAL E QUATIONS
ode_runge_kutta
Solves an initial-value problem for ordinary differential equations using the Runge-Kutta-Verner
fifth-order and sixth-order method.
ode_adams_gear
Solves a stiff initial-value problem for ordinary differential equations using the Adams-Gear methods.
pde_method_of_lines
Solves Poissons or Helmholtzs equation on a twodimensional rectangle using a fast Poisson solver
based on the HODIE finite-difference scheme on
a uniform mesh.
T RANSFORMS
fft_real
Computes the convolution, and optionally, the correlation of two real vectors.
convolution (complex)
Computes the convolution, and optionally, the correlation of two complex vectors.
inverse_laplace
N ONLINEAR E QUATIONS
zeros_poly
Finds the zeros of a polynomial with complex coefficients using the Jenkins-Traub three-stage algorithm.
zeros_fcn
fft_complex
O PTIMIZATION
fft_complex_init
min_uncon
fft_cosine
min_uncon_deriv
12
bessel_J0
lin_prog
S PECIAL F UNCTIONS
erf
bessel_J1
Evaluates a sequence of Bessel functions of the second kind with real order and complex arguments.
bessel_I0
13
bessel_Kx
kelvin_ber0_derivative
elliptic_integral_K
14
kelvin_bei0_derivative
kelvin_ker0_derivative
beta_cdf
kelvin_ker0
beta_inverse_cdf
kelvin_kei0
bivariate_normal_cdf
P RINTING F UNCTIONS
write_matrix
table_oneway
page
chi_squared_test
write_options
simple_statistics
covariances
U TILITIES
regression
output_file
poly_regression
version
error_options
random_uniform
error_code
random_normal
constant
random_poisson
machine (integer)
random_gamma
machine (float)
random_beta
sort
15
vector_norm
generate_test_band
mat_mul_rect
generate_test_coordinate
N UMERIC U TILITIES
c_neg
mat_mul_rect_coordinate (complex)
c_div
mat_add_band
cz_convert
mat_add_band (complex)
zc_convert
mat_add_coordinate
cf_convert
mat_add_coordinate (complex)
c_conjg
matrix_norm
c_arg
matrix_norm_band
c_sqrt
matrix_norm_coordinate
16
generate_test_band (complex)
c_abs
c_sin
regression
c_exp
regression_summary
c_log
regression_prediction
hypothesis_partial
cc_power
hypothesis_scph
fi_power
hypothesis_test
ii_power
regression_selection
regression_stepwise
IMSL C/STAT/LIBRARY
B ASIC S TATISTICS
simple_statistics
Builds multiple linear regression models using forward selection, backward selection or stepwise selection.
poly_regression
sort-data
C ORRELATION
C OVARIANCE
AND
covariances
R EGRESSION
regressors_for_glm
pooled_covariances
robust_covariances
cox_stuart_trends_test
A NALYSIS
OF
VARIANCE
anova_oneway
wilcoxon_rank_sum
cochran-q_test
anova_nested
k_trends_test
anova_balanced
T ESTS
OF
G OODNESS
OF
F IT
chi_squared_test
C ATEGORICAL AND
D ISCRETE D ATA A NALYSIS
contingency_table
kolmogorov_one
Computes exact probabilities in a two-way contingency table, using the total enumeration method.
exact_network
normality_test
Computes exact probabilities in a two-way contingency table using the network algorithm.
categorical_glm
randomness_test
N ONPARAMETRIC S TATISTICS
T IME S ERIES
AND
F ORECASTING
arma
sign_test
wilcoxon_sign_rank
arma_forecast
difference
18
box_cox_transform
beta_cdf
autocorrelation
beta_inverse_cdf
partial_autocorrelation
bivariate_normal_cdf
lack_of_fit
M ULTIVARIATE A NALYSIS
chi_squared_cdf
chi_squared_inverse_cdf
cluster_k_means
F_inverse_cdf
principal_components
gamma_cdf
factor_analysis
normal_cdf
discriminant_analysis
normal_inverse_cdf
S URVIVAL A NALYSIS
t_cdf
P ROBABILITY AND
D ISTRIBUTION F UNCTIONS
t_inverse_cdf
binomial_cdf
19
random_triangular
random_binomial
random_uniform
random_geometric
random_poisson
random_option
random_uniform_discrete
P RINTING F UNCTIONS
write_matrix
random_gamma
U TILITIES
output_file
random_normal
20
error_options
21
J N L - A N U M E R I C A L L I B R A R Y F O R J AVA
JNL is a 100% Pure Java numerical library for the Java environment. The library extends
core Java numerics and allows developers to seamlessly integrate advanced mathematical
functions into their Java applications.
JNL is an object-oriented implementation of several important classes of mathematical
functions drawn from the IMSL algorithm repository. Visual Numerics has taken
individual algorithms and reimplemented them as object-oriented, Java methods. JNL is
designed with extensibility in mind; new classes may be derived from existing ones to add
functionality to satisfy particular requirements.
Because JNL is a 100% Pure Java class library, it can be deployed on any platform that
supports Java. A JNL-based application will work seamlessly on a PC, a Macintosh, a
UNIX workstation or any other Java-enabled platform.
JNL can be used to write client-side applets, server-side applications or even non-networked
desktop applications. JNL applets perform all processing on the Java client, whether it is a
thin client, such as a network computer, a PC or workstation equipped with a Java Virtual
Machine. Client-side processing reduces the number of "round trips" to a networked
server, which in turn minimizes network traffic and system latency. JNL is Visual
Numerics' contribution to the worldwide Java development community, and is available
free of charge via our website.
22
USA
Visual Numerics, Inc.
1300 West Sam Houston Pkwy South
Suite 150
Houston, TX 77042
Tel: 800-222-46754
E-mail: info@vni.com
United Kingdom
Visual Numerics International, Ltd.,
United Kingdom
Centennial Court
Easthampstead Road
Bracknell, Berkshire RG12 1YQ
England
UNITED KINGDOM
Tel: +44-1-344-45-8700
E-mail: info@vniuk.co.uk
France
Visual Numerics SARL
Tour Europe
33 Place des Corolles Cedex
F-92049 Paris La Defense
FRANCE
Tel: +33-1-46-93-94-20
E-mail: info@vni-paris.fr
Germany
Visual Numerics International GmbH,
Germany
Zettachring 10, D-70567
Stuttgart
GERMANY
Tel: +49-711-1328-70
E-mail: info@visual-numerics.de
Mexico
Visual Numerics S.A. de C.V.
Cerrada de Berna 3, Tercer Piso
Col. Juarez
Mexico, D.F. C.P. 06600
MEXICO
Tel: +52-5514-9730 or 9628
avadillo@mail.internet.com.mx
Japan
Visual Numerics Japan, Inc.
Gobancho Hikari Building, 4th Floor
14 Goban-cho Chiyoda-Ku
Tokyo
JAPAN
Tel: +81-3-5211-7760
E-mail: vnijapan@vnij.co.jp
Korea
Visual Numerics, Inc., Korea
Rm. 801, Hanshin Bldg.,
136-1, Mapo-dong, Mapo-gu,
Seoul 121-050
KOREA
Tel: +82-2-3273-2632
E-mail: info@vni.co.kr
Taiwan
Visual Numerics, Inc., Taiwan Branch
7/F, #510 Chung Hsiao E. Road, Sect. 5
Taipei, Taiwan 110
REPUBLIC OF CHINA
Tel: +886-2-2727-2255
E-mail: info@vni.com.tw