IMSL 數值函數庫 的核心是精密且可信賴的 IMSL 數學與統計算法。IMSL 函數庫是業界的標準,提供完整的數值計算算法能夠讓用戶內嵌入至他們的應用系統中。目前最新的 IMSL Fortran 函數庫包含了所有先前的 IMSL Fortran 77、IMSL F90 函數庫以及 IMSL 平行處理功能。除此之外,並新增了簡化的 ScaLAPACK 函數庫公用程式。欲了解完整的 IMSL Fortran 函數庫算法清單,請參考函數目錄。
功能強大的界面模式
IMSL Fortran 數值函數庫提供所有函數功能更為強大與更具彈性的界面模塊,透過此項功能能夠達到︰
- 提供使用者利用 Fortran 快速、便利的選擇性參數語法、實施函數的細部控制並加快簡化程式的開發
- 所有的算法呼叫過程僅僅需要簡化的參數,讓 Fortran 程式的開發愈形簡單
- 選擇性參數提供具經驗的設計師完整與深入的函數控制功能
- 經由在編譯中的數據型態與矩陣維度的確認,能夠減少開發程式所需的時間
- 透過運算符與函數的模塊,能夠經由面向對象的方法提供更為快速與自然的程式撰寫模式
- 簡化與彈性的介面能夠加快城市攥寫並且能夠簡化相關檔案
完整向下兼容
在過往超過二十年的研發過程中,IMSL Fortran 數值函數庫一直維持與先前所有版本兼容的功能。先前所呼叫 IMSL Fortran 程式庫的應用程式是不需重新修改。使用舊有 IMSL FORTRAN 77 的程式庫以及相關的語法依舊能夠在新版本中運作。
經過完整測試
Visual Numerics 擁有超過三十年在不同環境與平台間測試 IMSL 數值算法質量與效能的經驗。Visual Numerics 一直持續與編譯程式及硬體伙伴共同合作確保 IMSL 高可信賴度與效能的優化。此共同合作的經驗促使 Visual Numerics 能夠不斷精進其測試方法。此項努力的成果提供了更為穩定、完整精密的測試方法,也使得 IMSL 的使用者能夠信賴這些數值分析的方法並能夠專注於他們自己的應用系統開發與測試。
支援 SMP/OpenMP
IMSL Fortran 函數庫針對平行處理環境提供 SMP 的支援,在需要大量計算能力的數學算法中,例如線性代數、矩陣處理、特徵值分析與快速傅利葉轉換等都可利用 SMP 的計算能力。
支援 MPI
IMSL Fortran 函數庫在分佈式系統中透過 MPI (Message Passing Interface) 界面提供數學計算解決方案。支援 MPI 的函數提供簡易、可信賴的用戶界面。
IMSL Fortran 函數庫的 MPI 函數與其加強的 MPI 界面提供︰
- 可控制伺服器節點是否從事運算
- 計算資源的可擴充性
- 自動定義處理器計算優先級
- 自我排程算法確保處理器持續運算
- 支援 Box 數據型別應用
- 計算處理的完整性
- 動態的錯誤處理機製
- 支援同質與異質網路功能
- 使用描述性的名稱與通用的界面
- 完整的測試與評量軟體
The IMSL Libraries are a comprehensive set of mathematical and statistical functions that programmers can embed into their software applications. The libraries save development time by providing optimized mathematical and statistical algorithms that can be embedded into C, C++, .NET, Java™ and Fortran applications, enhancing return on investment and programmer productivity. The IMSL Libraries can also be used from Python using PyIMSL Studio or the PyIMSL wrappers. Beyond choice of programming language, the IMSL Libraries are supported across a wide range of hardware and operating system environments including Windows, Linux, Apple and many UNIX platforms.
Functional areas included in the IMSL Numerical Libraries
Data mining and forecasting functionality | Statistical functionality | Mathematical functionality |
Stochastic Gradient Boosting | Summary Statistics | Optimization |
Decision Trees | Time Series and Forecasting | Matrix Operations |
Regression | Nonparametric Tests | Linear Algebra |
Vector Auto-Regression/Vector Error Correction Model | Analysis of Variance | Eigensystem Analysis |
Apriori Analysis | Generalized Linear Models | Interpolation and Approximation |
Cluster Analysis | Goodness of Fit | Quadrature |
Kohonen Self Organizing Maps | Distribution Functions | Differential Equations |
Neural Networks | Random Number Generation | PDEs |
Auto_ARIMA | Hypothesis Testing | Feynman-Kac Solver |
ARCH, GARCH | Design of Experiments | Transforms |
Support Vector Machines | Visualization | Nonlinear Equations |
Genetic Algorithms | Statistical Process Control | Linear and Nonlinear Programming including Sparse LP Solver |
Naïve Bayes | Multivariate Analysis | Special Functions |
Logistic Regression | Correlations and Covariance | Utilities |
Principal Components Analysis | ||
Factor Analysis | ||
Discriminant Analysis | ||
Bayesian Seasonal Model |
C / C++ Numerical Library
Embeddable Numerical Analysis Functions for C/C++ Applications
The IMSL C Numerical Library provides advanced mathematical and statistical functionality for programmers to embed in their existing or new applications. Written in standard C, the IMSL C Library can be embedded into any C or C++ application as well as any existing application that can reference a C library.
Using PyIMSL, developers also have the option to write programs in Python that leverage algorithms in the IMSL C Library. PyIMSL is a collection of Python wrappers to the mathematics and statistical algorithms in the IMSL C Library and is available either as a separate download or as part of the PyIMSL Studio product.
Fortran Numerical Library
Embeddable Numerical Analysis Functions for Fortran Applications
The IMSL Fortran Numerical Library is the standard for high performance computing commercial mathematics and statistics libraries, providing:
- Superior accuracy and reliability through 40 years of refinement
- A comprehensive set of 1000+ algorithms
- Supporting parallel processing architectures since 1990
- Evolves easily with software and hardware upgrades
- Easier use of popular open source technology
Java™ Numerical Library
Advanced Numerical Analysis and Charting for Java
JMSL Library The JMSL Numerical Library is the broadest collection of mathematical, statistical, financial, data mining and charting classes available in 100% Java. It is the only Java programming solution that combines integrated charting with the reliable mathematical and statistical functionality of the industry-leading IMSL® Numerical Library algorithms. This blend of advanced numerical analysis and visualization on the Java platform allows organizations to gain insight into valuable data and share analysis results across the enterprise quickly.
C# & .NET Numerical Library
Advanced Numerical Analysis
As the only numerical library of its kind to offer unprecedented analytic capabilities and charting, the IMSL .NET / C# Numerical Library can be referenced from any .NET Framework language including C#, F# and Visual Basic .NET. Version 6.5 of the IMSL .NET / C# Numerical Libraries provides the most comprehensive, high-performing and accessible mathematical, statistical and financial algorithms for the .NET Framework and Microsoft Silverlight.
PV-WAVE
Array-based language
- Loosely-typed and extensible 4GL with an interactive command line interface to an event-driven interpreter
- Commands can be interactively interpreted or compiled into programs
- Sessions can be saved and restored
- Support for functions, subroutines, global, and local variables
- Complete set of data types for constants and variables (byte, integer, long integer, floating point, complex, double precision, double precision complex, string, date/time) in a variety of structures (scalar, array, table, structure, list, associative array)
- Arrays of up to eight dimensions
- Operators work on both scalars and arrays
- Looping and branching constructs
- Arrays can be subscripted conventionally or subscripted with other arrays
- Execute commands contained in strings
- Debugging utilities
- Powerful and convenient array creation/manipulation functions
- Complete set of utilities for processing string and date/time variables
- Trap and handle errors
- SQL-like query functions for tables
- Context-sensitive online help
- Full online documentation set
Numerics
- Operators (array-enabled): numeric, relational, Boolean
- Common functions (array-enabled): abs, min, max, trigonometric, hyperbolic, and more
- Special functions (array-enabled): Bessel, error, gamma, and more
- Tensor functions: generalized tensor products, traces, transpositions
- Filters: multidimensional, convolution, parametric, polynomial, relational, Boolean
- Linear systems: inversion, determinants, decomposition, roots, least-squares, full and sparse matrix support, generalized eigensystems
- Nonlinear equations: systems, roots of polynomials, and functions
- Transforms: Laplace, multidimensional FFT
- Quadrature: multivariate differentiation and integration
- Differential equations: systems, ODEs, PDEs
- Optimization: multivariate, linear and nonlinear, constrained and unconstrained
- Interpolation and approximation: multidimensional gridding, n-linear interpolation, multivariate polynomials, multivariate splines
- Regression: multivariate, linear, polynomial, nonlinear
- Basic statistics: simple summary statistics, histograms, nonparametric statistics, goodness-of-fit tests, tabulation, sorting, ranking
- Correlation and covariance
- Analysis of variance
- Categorical and discrete data analysis
- Time series and forecasting: autocorrelation, autoregression, lack-of-fit, GARCH
- Multivariate cluster and factor analysis
- Survival analysis
- Probability distribution functions and random number generation
Graphics
- Plotting: 2D and 3D line, 2D and 3D scatter, 2D and 3D vector, 2D and 3D bar, 2D and 3D contours, meshed and shaded surfaces
- Basic image processing: equalize, scale, shrink, expand, warp, zoom, pan, copy, rotate, threshold, profile, smooth, convolve, erode, and dilate images; filters (predefined and user-defined); define and analyze irregular regions of interest; algebraic operations; 3D projection
- Animation
- Polygonal rendering: 3D mesh generation, iso-surfaces, light source control
- Volume rendering: isosurfaces, opacity, diffusivity, shading, slicing, light source control
- Mapping: comprehensive geopolitical world database; wide variety of projections; overlay lines, images, contours, and vectors; support for user-supplied databases and projections
- Annotation: flexible axis, line and symbol styles; scalable/rotatable software/hardware fonts
- Comprehensive colortable control
- 3D view control
- VRML support
Data import / export
- Formatted and unformatted read/write, XDR read/write, HDF read/write, HDF5 read/write, powerful ASCII read/write, XML, 8- and 24-bit image import/export (support for wide variety of image formats)
Open architecture
- Spawn sub-tasks, transfer data via bi-directional pipes
- Call PV-WAVE from a C or Fortran program
- Call C or Fortran code from PV-WAVE
- Communicate between PV-WAVE and another application via remote procedure calls
- Create an optional PV-WAVE module using the options programming interface
Graphical user interface development
- Comprehensive set of high-level and low-level widgets
- Resource file support and string services
Visual data analysis tools
- Super-widgets allow non-programmers to do animation, image analysis, line plots, scatter plots, surface plots, contour plots, histogram plots, color table manipulation, variable manipulation, and data import/export
Signal processing toolkit
- Filter analysis: complex frequency response, analog and digital transfer functions
- Classical filter design: bilinear transform, windowed FIR and IIR
- Advanced filter design: least squares and optimal FIR and IIR
- Multirate filter functions: decimation, interpolation, quadrature
- Filter realization: FIR/IIR causal and anticausal, multi-rate
- Statistical signal processing: filter design, Toeplitz matrix factorization, autocorrelation
- Transforms and spectral analysis: spectogram, power spectrum analysis, wavelet transforms
- Polynomial manipulation: spectral factorization, stabilization, algebraic operations
- Specialized plotting routines: zero-pole plot of filter, comb plot of digital signal
Advanced image processing toolkit
- Graphical user interface (GUI)
- Image file formats: import/export, most common formats
- Support for multi-layered images, volumes, signals, animation, and regions of interest
- Point operations: algebraic, Boolean, trigonometric, logarithmic, thresholding, slicing
- General filtering: edge, noise removal/generation, linear (convolutions, user-defined)
- Advanced filtering: spatial (nonlinear, adaptive), frequency (butterworth, ideal, and more)
- Morphological image processing: erode/dilate, open/close, outline, skeletonize
- Mensuration: shape (moments, major axis, perimeter), statistical, distance mapping
- Representation and description: histograms, spatial/spectral textural analysis
- Image transforms: FFT, DCT, PCT, Hough, Slant, Radon, Wavelet
- Geometric transforms: scale, rotate, translate, interactive warp
- Color: linear and nonlinear conversions between grayscale and 8-bit/24-bit color
- Classification and segmentation
Database connection toolkit
- Direct link between Oracle, Sybase, or ODBC database
- Use standard SQL syntax to interactively open, query, subset, sort, and filter null values
- Support for multi-row fetches with adjustable row counts for Oracle and Sybase connections
- User control over commits and rollbacks for ODBC connection
TotalView for HPC
Prevent execution, memory, and data issues by using this highly-scalable, graphical debugger built specifically for troubleshooting massively parallel, multi-threaded, multi-process applications for high performance computing (HPC) environments.
Dynamic Analysis and Debugging of Complex Code
TotalView for HPC is a debugging software designed for high-performance computing (HPC) environments. TotalView enables faster fault isolation, improved memory optimization, and dynamic visualization for your high-scale HPC apps. TotalView understands high-scale parallel and multicore applications, with unprecedented control over processes and thread execution and visibility into program states and data.
Reproduce Difficult Problems Quickly
With TotalView for HPC, simultaneous debug many processes and threads in a single window to get complete control over program execution: Running, stepping, and halting line-by-line through code within a single thread or arbitrary groups of processes or threads. Work backwards from failure through reverse debugging, isolating the root cause faster by eliminating repeated restarts of the application. Reproduce difficult problems that occur in concurrent programs that use threads, OpenMP, MPI, CUDA, and GPUs, or coprocessors. Debug autonomous machine applications running on the NVIDIA Jetson AGX Xavier ARM/Volta GPU platform.
No More Memory Leaks or Deadlocks
Memory leaks, deadlocks, and race conditions can be things of the past. Whether an experienced developer or new to the development challenges of multicore or parallel applications, TotalView finds errors quickly, validates prototypes, verifies calculations, and certifies code correctness.
Debugging in C/C++ and Python
Easily analyze and debug multi-language applications written in both Python and C/C++ by seeing an integrated cell stack and easily examining variables in both sets of languages.
Seamless Integration and Support
TotalView works with C, C++, and Fortran applications written for Linux (including the Cray and Blue Gene platforms), Linux PowerLE, UNIX, Mac OS X, and Xeon Phi, and supports OpenMP, MPI, OpenPOWER, OpenACC / CUDA and ARM.