Mathcom Home
Services Customers Tech Info Contact Us
 

Commercial NA Libraries and Packages

Commercial libraries and packages tend to merge, so I've combined them in one category. Typically a commercial product contains:
  • a library of numerical routines
  • graphics routines
  • an interactive interpreted language

    Many symbolic algebra packages also contain NA packages. For info on these packages, see Symbolic Algebra .

  • NAG
  • IMSL and PV-WAVE
  • Matlab and Simulink
  • WavBox
  • IDL
  • Comparison of IDL and Matlab
  • Mlab
  • Gauss
  • MathViews
  • Matcom: Matlab to C++ Compiler
  • O-Matrix
  • UCALC
  • VisualMath
  • Ch Interpretor for C++ numerics
  • CenterSpace

    NAG

    NAG provides numerical, symbolic, statistical, and visualization libraries in Fortran 77, Fortran 90, C, Pascal, Ada, and parallel machine versions. High performance Fortran 90 and Fortran 77 compilers.

    IMSL and PV-WAVE

    IMSL from Visual Numerics, Inc. is a set of routines in C, C++, and Fortran libraries for general NA, statistics and graphics. PV-WAVE is a visual programming environment that includes IMSL as a "plug-in".
  • integration and differentiation
  • transforms
  • differential equations
  • linear systems
  • interpolation and approximation
  • eigensystem analysis
  • optimization
  • special functions
  • basic matrix/vector operations
  • nonlinear equations
  • basic statistics
  • tests of goodness-of-fit
  • time series analysis and forecasting
  • analysis of variance
  • regression
  • nonparametric statistics
  • correlation
  • random number generation
  • cluster analysis
  • categorical and discrete data analysis
  • probability distribution functions and inverses
  • factor analysis
  • Exponent Graphics includes:
  • Presentation quality graphs for application development
  • Application program interface provides easy access to either FORTRAN or C
  • Two function calls can automatically produce one of over 30 different plot types.
  • Maximum flexibility for modifying plot characteristics
  • Powerful interactive editing and customization tools
  • CGM, PostScript, HPGL and other device drivers
  • Support for popular graphics accelerators and output systems
  • Full Windows-based online documentation with hypertext links

    PV-WAVE is a software environment for solving problems requiring the application of graphics, mathematics, numerics and statistics to data and equations.

    Matlab and Simulink

    Matlab from Mathhworks is an interactive general NA package, including graphics. A huge variety of "toolboxes" are available, both from the vendor and on the net, for various specialized NA areas: control systems, neural nets, optimization, symbolic math, and on and on.

    Simulink is modeling, simulation, and system analysis tool.

    For a comparison of Matlab and IDL, see Comparison of IDL and Matlab .

    MATLAB is a technical computing environment for high-performance numeric computation and visualization. MATLAB integrates numerical analysis, matrix computation, signal processing, and graphics in an easy-to-use environment where problems and solutions are expressed just as they are written mathematically - without traditional programming.

    MATLAB has evolved over a period of years with input from many users. In university environments, it has become the standard instructional tool for introductory courses in applied linear algebra, as well as advanced courses in other areas. In industrial settings, MATLAB is used for research and to solve practical engineering and mathematical problems. Typical uses include general purpose numeric computation, algorithm prototyping, and special purpose problem solving with matrix formulations that arise in disciplines such as automatic control theory, statistics, and digital signal processing (time-series analysis).

    MATLAB also features a family of application-specific solutions that we call toolboxes. Very important to most users of MATLAB, toolboxes are comprehensive collections of MATLAB functions (M-files) that extend the MATLAB environment in order to solve particular classes of problems. Areas in which toolboxes are available include signal processing, control systems design, dynamic systems simulation, systems identification, neural networks, and others.

    SIMULINK is a tool for modeling, analyzing, and simulating an extraordinarily wide variety of physical and mathematical systems, including those with nonlinear elements and those which make use of continuous and discrete time.

    WavBox

    Wavbox is a wavelet Toolbox for Matlab. A software toolbox for wavelet transforms and adaptive wavelet packet decompositions with new search algorithms. Requires Matlab.

    IDL

    ITT (was Research Systems Inc.) IDL, the Interactive Data Language, is software for data analysis, visualization, and cross-platform application development. IDL combines all of the tools you need for any type of project, from "quick-look," interactive analysis and display to large-scale commercial programming projects. From Research Systems, Inc.

    For a comparison of IDL and Matlab, see Comparison of IDL and Matlab .

    Following are two sets of comments on IDL:

    Comments by Pierre Maxted

    I find that IDL is good for "playing" with data. This works well for astronomers who seem to end up always wanting to do something a little different to last time to data that always has slightly different quirks every time. I also find that it is a rather easy language in which to write my own routines. This is probably because I can start with interactive IDL to get the feel for what the data is like and what I want to do with it - this then becomes a simple batch file which can be turned into a routine if the procedure is useful - this seems to be a natural way to develop things. These libraries of routines are what makes IDL really powerful in my opinion. I found that adding the astronomy user's library to IDL was like adding wheels to a car. I would recommend to anyone considering using IDL to find out what libraries are out there (e.g. starting at the IDL WWW home page).

    Whatever you add to the FAQ, make one point clear - calling IDL a fancy plotting package is like calling a Formula 1 racing car good for picking up the kids from school - IDL can do plotting, but that is not its strength.

    Well, I agree that the hard copy manuals are rather opaque but Version 4 of IDL has online help (Hyperhelp) that is rather good - especially since it had text searching capabilities so that you can go straight to the bit you need (usually).

    Comments by Amara Graps

    Following is an excerpt of comments by [Amara Graps]: For the full text of her review, please see: Amara Graps' Papers

    If you install IDL without a valid license, you will get IDL's 7 minute demo mode. This mode is designed for users who are considering buying the package.

    IDL is a vector-based language that makes it easy to manipulate arrays and matrices. I've done testing comparing IDL speed to Fortran in various actions, and IDL was as fast as a Fortran program for the IDL array computations where loops were removed (i.e., when using implicit loops in IDL instead of explicit FOR statements).

    The scientific functions and procedures that come with IDL are often all that scientists need. In addition, there are net archives containing contributed routines. The archives at John Hopkins and at Goddard are especially good (see below).

    The language, for the most part is "open", i.e. you can see the text of any particular procedure or function, in case you doubt the technique, or want to modify it. Some functions and procedures are black-box, intrinsic functions or procedures, but not nearly as many as Matlab (see below) are.

    Most work in IDL is done at the command line level. However, IDL supplies rudimentary "widgets" to wrap a GUI around your procedures and functions. You can create buttons, menus, scrollboxes etc.

    Three-d plotting is currently not very well documented, and the way that IDL does it is very convoluted. Other users and I have complained about it, and I think RSI are taking steps to better document how to do it.

    Image processing and animation is pretty slick. If you need to do "slicing and dicing" of a volume, in a way like Spyglass Dicer, IDL has a really great widget routine to do it. The IDL plots are high quality enough to use in initial journal submissions.

    RSI's support (writing to support@rsinc.com) is pretty good, I usually get responses within 24-34 hours. You have to pay yearly technical support costs, though- about $200 year (don't remember exactly how much). The Usenet group: comp.lang.idl-pvwave has some smart programmers giving answers if you don't want to pay for the IDL technical support. RSI usually doesn't answer questions on that newsgroup (they have a company policy against promoting IDL there because it's shared by two products: IDL and PV-WAVE).

    I've never liked the IDL documentation very much. The information that you need probably *is* in the manuals, but it's somewhat hard to find (the manuals are organized in a weird way). [Note, however, the comments by Pierre Maxted above].

    Public IDL code

    The anonymous ftp sites below contain public domain IDL code. JHU/APL/S1R IDL library NASA IDL Astro Library NASA IDL Astro Library via ftp IUE RDAF library at NASA IUE RDAF library at U. of Colorado ICUR Spectral Analysis Software IDL ROSAT software IDLmeteo library ESRG library Hal Mueller has a Digital U.S. Map browser based on images created by Ray Sterner at Johns Hopkins University using IDL.

    Comparison of IDL and Matlab

    Following is an excerpt of a paper by [Amara Graps]: For the full text of her review, please see: Amara Graps' paper.

    IDL is a package that began life as an image-processing utility that has grown to be a general-purpose numerical analysis tool. Matlab started as a numerical analysis package that now includes [at extra cost] image processing tools. Now the two have a similar scientific data-analysis environment, with capabililties to build GUI programs and do very robust data analysis.

    (Note: all prices are approximate October 1995 prices - SJS) They each cost about the same: ~$1500 for Mac and PC versions and more for Unix (~4000 -- single user to $15,000 -- unlimited number of users).

    Matlab is popular among education institutions because it has exceptional educational discounts. If you are an academic, Matlab can be had for $495 and each toolbox only $195. My NASA colleagues thought that MathWorks "nickled- and-dimed" them with the costs of the Toolkits (like the signal processing toolkit), but given what you get, it probably isn't that unreasonable.

    IDL seems to be more widespread in the NASA communities probably because the original developer used several spacecraft teams (Pioneer Venus and Voyager) as test beds for the IDL software.

    IDL is more of a true programming language. Matlab has scripts and functions and no way to explicitly type a variable. IDL has programs, procedures, and functions and a language syntax sort of like a cross between Fortran, Pascal, and APL. If you have programmed in Fortran before, then the syntax will be a snap to learn. Matlab's syntax is much more compact than IDL's. For example: x = transpose(y) in IDL is x=y' in Matlab.

    Matlab has many more built-in, intrinsic functions than IDL. MatLab has many optional Toolkits, such as a Signal Processing Toolkit and an Image Processing Toolkit, which are libraries of more intrinsic functions.

    Reading and writing files, and handling formats such as GIF, PICT, GDF, and custom formats, seems much easier in IDL than MATLAB. Handling directories is difficult in MATLAB when run on non-unix machines.

    Matlab has more types of graph types than IDL, and handling colors is simpler than IDL. However, I found most other Matlab graphical programming non-intuitive. It uses a system where each element in a graph is an "object." These objects can have sub-objects. So to change an element in a graph, say the axis color, you have to first find the object (a "get" function), and then set it to the color you want. IDL has system variables storing all graphics elements which can be easily changed. One can also customize a graph upon making the graph, with a keyword.

    IDL's technical support is pretty good, but Matlab's is better. Post a question on comp.soft-sys.matlab and either a developer, the company president, or a tech support person will respond that day. You can call them, too, but it's not a toll-free call.

    MLAB

    MLAB (for Modeling LABoratory) is a program for interactive mathematical and statistical modeling. MLAB was originally developed at the National Institutes of Health. It includes curve-fitting, differential equations, statistics and graphics as some of its major capabilities.

    Gauss

    GAUSS, from Econotron Software, is available for IBM PCs and compatibles as well as UNIX workstations

    As a complete programming language, the GAUSS system is both flexible and powerful. Immediately available to the GAUSS user is a wide variety of statistical, mathematical and matrix handling routines. Powerful data handling capabilities including a data loop allow transformations in a data set by directly using variable names in expressions. This greatly simplifies data transformations and makes for shorter more readable programs. GAUSS can be used in either command mode(interactively) or in edit mode. In command mode; one-line commands, or small screen-resident programs, can be issued and the results of calculations seen immediately. In edit mode you can write complex programs and store them in files.

    GAUSS has over 400 functions built in, including LINPACK and EISPACK routines.

    MathViews

    MathViews for Windows is matlab look-alike. It has a full set of linear algebra and signal processing functionality. It provides easy access to: matrix and linear algebra, digital signal processing, instrument control, image processing, time series analysis, data visualization and waveform display and editing. MathViews is highly compatible with the matlab syntax and will execute most matlab m-files with no changes. We also have WaveTool. WaveTool is an interactive software tool for creating, editing and analyzing captured waveshapes. Waveforms can be created using any combination of drawing, math expressions (matlab syntax), insertion from a library of waveforms or data values pasted from other applications such as Microsoft Excel.

    Matlab to C++ Compiler and C++ Matrix Class Library

    MATCOM V2 is a Matlab(R) to C++ compiler. MATCOM creates MEX files and standalone C++ applications, with royalty free distribution. MATCOM translates Matlab code to C++, which is compiled by your optimizing C++ compiler. The resulting code runs significantly faster than the original interpreted source. Prior knowledge of C++ is not necessary to use MATCOM. The compilation is fully automated by a smart project manager. Fully functional, time limited evaluation version of MATCOM V2 can be downloaded freely from the MathTools web site.

    MATLIB, a Matlab Compatible C++ Matrix Class Library, is designed for development of advanced scientific high-level C++ code. Evalution version of the MAT can be downloaded from the home page noted above. The library includes Complex math, Binary and unary operators, Powerful indexing capabilities, Signal processing, File I/O, Linear algebra, String operations and Graphics. Over 300 mathematical functions are included in MAT. MAT supports matrices of doubles, floats, ints and chars mixed in the program. Images can be stored in matrices of chars, using 1/8 memory storage. On many applications, where 8 digits of precision are sufficient, float-precision matrices can save half the memory usage. Memory allocation and de-allocation is managed automatically.

    O-Matrix

    O-Matrix is a complete solution for analysis, visualization, and rapid application development, (RAD). The interactive environment enables both point-and-shoot oriented analysis for rapid solutions and a powerful language and debugger for large demanding applications. The integrated matrix language provides performance that far exceeds typical integrated environments and often rivals compiled code for numerically-intensive applications.

    SPT - The Signal Processing Toolbox for O-Matrix: SPT for O-Matrix provides a broad, extensible set of functions and utilities that expands the capabilities of O-Matrix in the area of digital signal processing. Built on the high-performance capabilities and flexibility of O-Matrix, the toolbox contains tools for algorithm development, data analysis, and visual presentation. SPT enables the rapid development of robust, high-performance applications in areas including digital filtering, spectral estimation, digital communication system simulation, time series analysis, real time control, geophysics, and more. The package comes with complete source code, online tutorials and examples, and unlimited free technical support.

    KBF - The Kalman Filter Interface Pack for O-Matrix: The KBF interface simplifies the design of a filter or smoother by dividing the design process into simple steps with each step corresponding to an input window or dialog. Extensive plotting of results, including residuals and correlations is also automated. In addition, a simulation feature is included to aid in testing the validity of the design. KBF is used in a wide range of applications such as tracking, weather and earth process modeling, economic forecasting and bioengineering.

    UCALC

    UCALC for Windows includes many features useful for scientific calculations and graphing:
  • Scientific Expression Evaluator
  • Eq graphing: Cartesian, polar, 3D, parametric, data files
  • Equation Solver
  • Numerical Integrator
  • Many scientific functions
  • Supports user functions and variables
  • Built-in and user-defined numeric formats
  • Unit Converter
  • Summation Tables
  • Financial Modules
  • General Ledger

    In addition to the above, UCALC introduces an innovative feature - User Solution Modules (USM). USMs are created by simply providing a math formula, and giving it a name. UCALC parses the formula and creates a template form which allows the user to solve for any item by simply filling in the blanks. Useful USMs are included to get you started.

    VisualMath

    VisualMath is an online symbolic math and computer algebra system. It can perform exact, numeric, symbolic and graphic computation, e.g. arbitrary-precision calculation, solve equation, plot data and user-defined functions, linear regression, symbolic differentation and integration, pattern-match. It is a programming language, in which you can define conditional, case, piecewise, recursive, multi-value functions and procedures, derivatives, integrals and rules. It runs in any computer that supports Java.

    Ch Interpretor for C++ numerics

    Ch is a superset of C interpreter. It is embeddable. C/Ch/C++ allows software developers to use one language, anywhere and everywhere, for any programming and numerical computing tasks.

    By incorporating external libraries, it provides access to linear algebra, ODE, integration, graphics, etc.

    CenterSpace

    A product suite from CenterSpace Software provides numerical components for mathematical, financial, engineering, and scientific applications on the .NET platform.



    Copyright 1995-2010 Mathcom Solutions Inc                               Updated August 12, 2010