Welcome! My intent here is to provide reviews of software, texts, and other resources instead of simply a listing. My experience is that for someone looking for a package or system, reviews by previous users can be a lifesaver.
If you have any suggestions, comments, or contributions please send them to me at: firstname.lastname@example.org
Other reviews would be most welcome! If you use a mathematical package or set of programs and would care to write one to twenty sentences on it, please let me know. If you have a favorite text or two you'd like to recommend, please let me know.
Sigh, and now the legalities ...
The information contained in this document is believed to be true, but no guarantees of accuracy are made, and there is no liability of any sort for any consequences of its use.
This document may be copied and/or reproduced providing that: * the use is for non-commercial purposes only, and * all copies contain this copyright notice: * Copyright 1995-6 S. J. Sullivan
q125.11, "Matlab to C++ Compiler and C++ Matrix Class Library" MAT<LIB>, a Matlab Compatible C++ Matrix Class Library.
q260.2.7, "QMG" [author]: QMG is free software for fully automatic unstructured finite element mesh generation in two and three dimensions. It can generate meshes for complex polyhedral domains with nonmanifold features.
q265.1, "Optimization, Linear and Non-Linear Programming" NEOS Guide to Optimization Software
q260.6, "Books and References for PDE and FEM" Books by Wolfgang Hackbusch.
q520.1, "Comparative Reviews on Symbolic Algebra Packages" Michael Wester's page on comparative reviews of symbolic algebra packages.
q570, "Constraints" University of New Hampshire Constraint Computation Center
* q10, "FAQ: Numerical Analysis & Associated Fields Resource Guide" * q20, "NA FAQ: Introduction" * q30, "NA FAQ: Overview of Recent Additions" * q40, "NA FAQ: Table of Contents" * q50, "NA FAQ: Acknowledgements" * * q105, "What is Numerical Analysis?" * q110, "Indices of NA Software on the Net" * q112, "Indices of Commercial NA Software" * q115, "Libraries of NA Software on the Net" * q120, "NA Packages on the Net" * q125, "Commercial NA Libraries and Packages" * q135, "Newsgroups for NA" * q140, "Professional Societies for NA" * q145, "Electronic Newsletters for NA" * q150, "Electronic Journals for NA" * q155, "Online Preprints for NA" * q160, "Miscellaneous Web Sites for NA" * q165, "Books, With and Without Software, for NA"
Specialized Subfields Within Numerical Analysis * q205, "Dense (Non-Sparse) Linear Algebra Systems" * q207, "Sparse Linear Algebra Systems" * q210, "Random Number Generators (RNGs)" * q215, "Function Evaluation" * q220, "Finding Roots" * q230, "Curve Fitting, Data Modelling, Interpolation, Extrapolation" * q240, "Transforms (FFT, etc) and digital signal processing (DSP)" * q245, "Wavelets" * q250, "Integration and Ordinary Differential Equations (ODEs)" * q253, "Stochastic Differential Equations" * q255, "N-Body and Particle Simulation" * q260, "Partial Differential Equations (PDEs) and Finite Element Modeling (FEM)" * q265, "Operations Research: Minimization, Optimization" * q270, "Computational Geometry" * q285, "Graphics and Scientific Visualization" * q290, "Miscellaneous NA Software"
Many thanks to all those who've given their time and advice in creating this FAQ, including:
Bob Berman berman@FERMAT.macsyma.com Ronald F Boisvert email@example.com Ted Brown firstname.lastname@example.org John Chandler email@example.com Luiz Henrique de Figueiredo firstname.lastname@example.org Bill Frensley email@example.com Pawel Gora firstname.lastname@example.org Amara Graps email@example.com Vijay Gupta gupta@acsu.Buffalo.edu Doug Hart firstname.lastname@example.org Albert Hines email@example.com Charles Knechtel firstname.lastname@example.org Zdislav V. Kovarik email@example.com.McMaster.CA Dave Linder firstname.lastname@example.org George Marsaglia email@example.com Pierre Maxted firstname.lastname@example.org Allen Mcintosh email@example.com Sean O riordain firstname.lastname@example.org Daniel Pfenniger email@example.com Daniel Pick firstname.lastname@example.org Brian Ripley email@example.com Ramin Samadani ramin@leland.Stanford.EDU Robert Schneiders robert@Informatik.RWTH-Aachen.DE Peter Somlo firstname.lastname@example.org Tim Strotman email@example.com N. Sukumar firstname.lastname@example.org Stephen Vavasis vavasis@CS.Cornell.EDU Dave Watson email@example.com
Many thanks also to the organizers of the many services listed herein - Netlib, the NIST guide, NA-Net, CAIN, the NASA Graphics site, and numerous other indices and informative web pages.
NA is the union of theoretical and computational investigation into the computer solution of mathematical problems. NA generally includes those problems involving continuous functions of real or complex variables, as opposed to solely discrete variables and functions.
The mixing of theoretical and computational concerns leads to a strong emphasis on algorithms: what are the time and memory usage properties of a certain algorithm? What errors are introduced by an algorithm?
The compuational aspects of NA usually take place within the scope of floating-point arithmetic, and are implemented on machines ranging from super-computers through PCs to hand-calculators. The theoretical aspects extend into fields such as Calculus, Differential Equations, and Analysis. The field of Linear Algebra is so often used to model physical systems that the theoretical study of Linear Algebra is in itself often considered to be NA at work.
Primary areas of theoretical concern in NA are: * global/local error bounding * stability of algorithms * rates of convergence of algorithms
Primary areas of computational concern in NA are: * roundoff error * global/local error and its tolerance * time and memory requirements of computation * High Performance Computing (HPC) * parallel computing * architechture/platform specific details.
[SJS]: Maintained by National Institute of Standards and Technology (NIST) An index and server for a wide variety of mathematical software, including most of netlib (see q115.1, "Netlib"). Much of the software is in Fortran. If you prefer to speak C++ or C, see q160.1, "C++ Resources", and q115.2, "Fortran, C, and f2c".
[Ronald Boisvert]: The main focus is on fine-grained software components, e.g. subroutines, although information about some larger packages are included. As of November 1995, nearly 10,000 components from more than 90 packages have been cross-indexed using a detailed tree-structured problem classification system. Both freely available software (from netlib or developed at NIST) and commercial packages (used by NIST) are indexed, although source code is available only for non-commercial software.
Libraries are collections of source code, and source code packages. Much of the code is in Fortran. If you prefer to speak C++ or C, see q160.1, "C++ Resources", and q115.2, "Fortran, C, and f2c".
The main library by far is q115.1, "Netlib". For statistical software, the best resource is q115.3, "Statlib". Other libraries are q115.4, "NCAR's Mathematical and Statistical Libraries" and q115.5, "Hensa Unix Parallel Archive".
q115.1. Netlib NetLib is probably the world's largest repository of numerical methods programs. It is located at Oak Ridge National Laboratory, Knoxville, Tennessee, and at AT&T Bell Laboratories, Murray Hill, NJ.
email: send message "help" to either: firstname.lastname@example.org email@example.com
Machine/architecture dependant Basic Linear Algebra Subroutines (BLAS) are the keystone of Netlib.
LAPACK, in Fortran 77, is the modern replacement of EISPACK, LINPACK, etc.
CLAPACK is a C version of LAPACK. See the Caution on Using Arrays in q115.2, "Fortran, C, and f2c".
LAPACK++ is a C++ version of, sadly, only a subset of LAPACK. LAPACK++ is work in progress, and hopefully the full functionality of LAPACK will be supported soon.
ScaLAPACK is for distributed memory machines.
q115.2. Fortran, C, and the f2c Translator
For C++ and C resources, see q160.1, "C++ Resources".
Most of the programs in netlib are in Fortran. However, netlib contains an excellent Fortran-to-C conversion utility, f2c. While f2c produces working C code, it is visually complex and ugly. Using f2c on a large package like LAPACK can require a good deal of time to get all the options correct. Fortunately, LAPACK has already be converted to C: see CLAPACK.
The utility f2c can also be invoked by email. Send email to firstname.lastname@example.org, with the subject "execute f2c", and body containing the non-confidential Fortran program to be converted. But the email option is of use only for very small, simple programs, since a resulting C program of any size must be linked with the f2c libraries. Usually one will have to download the f2c package anyway to generate the libraries. Generally it's easier to download the f2c package, build the libraries and the f2c conversion program, and do the conversion locally.
CAUTION: Programs created by f2c conversion use parameter passing conventions different from most C or C++ programs. Their callers must create the appropriate parameters before using them. See the file f2c.ps in the f2c distribution. A good description of this issue may also be found in the "readme" file for clapack in netlib.
Statlib is a huge repository of statistics related software and info. Probability, statistics, random variables, distribution functions.
http://www.eskimo.com/~hgeorge/ Modula-3 NA and pick the link to m3na. This is a libraried collection of numerical analysis routines written in Modula-3. Includes linear algebra, roots, ffts, and a bit of statistics.
[Dave Lindner]: Octave is considered the closest-to-Matlab of the Matlab clones.
[author]: Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically.
Octave can do arithmetic for real and complex scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations.
The Octave distribution includes a 200+ page Texinfo manual. Two and three dimensional plotting is fully supported using gnuplot.
The underlying numerical solvers are currently standard Fortran ones like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library of C++ classes.
[author]: Rlab is an interactive, interpreted scientific programming environment. Rlab is a very high level language intended to provide fast prototyping and program development, as well as easy data-visualization, and processing.
Rlab is not a clone of languages such as those used by tools like Matlab or Matrix_X/Xmath. However, as Rlab focuses on creating a good experimental environment (or laboratory) in which to do matrix math, it can be called "MATLAB-like" since the programming language possesses similar operators and concepts.
[Dave Lindner]: Scilab is another good Matlab clone.
[author]: Scilab is a high-level language for numerical computations in a user-friendly environment. It features: Elaborate data structures (polynomial, rational and string matrices, lists, multivariable linear systems,...). Sophisticated interpreter and programming language with Matlab-like syntax. Hundreds of built-in math functions (new primitives can easily be added). Stunning graphics (2d, 3d, animation). Open structure (easy interfacing with Fortran and C via online dynamic link).
Many built-in libraries : * Linear Algebra (including sparse matrices, Kronecker form, ordered Schur,...). * Control (Classical, LQG, H-infinity, ...). * Signal processing. * Simulation (various ode's, dassl,...). * Optimization (differentiable and non-differentiable, LQ solver). * Metanet (network analysis and optimization). Symbolic capabilities through Maple interface.
General NA package with graphics, linear algebra, FFT, etc. Is this another Matlab clone?
[author]: It is mainly targeted for prototyping large-scale numerical simulations and doing pre- and postprocessing for them, and it replaces a compiled language like C++ or Fortran in this respect. The feature set is therefore biased to operations needed in partial differential equation solvers.
Apparently there is also available is a commercial version of Medal: Email : email@example.com
[author]: MEDAL is a novel expert system development environment which is integrated within a control system design environment, and which supports a tight coupling of symbolic and numeric processing. MEDAL supports the development of coupled systems in engineering and science.
MEDAL (Matrix and Expert system Development Aid Language) is an interactive program. The language syntax of MEDAL is similar to the popular MATLAB (Matrix Laboratory) language. MEDAL retains all of the main features of MATLAB, including the MATLAB syntax and M-files. In addition, MEDAL includes an integrated expert system shell for the development of knowledge-based systems which can perform sophisticated numeric calculations. Hence, the additional expert system predicates extends the MATLAB command language syntax. Also, MEDAL supports a rich set of data structure for representing objects in the programming environment. Knowledge can be represented using facts, rules and frames.
Main features of MEDAL : ------------------------ * interactive computing environment ( command-drive ) * language syntax and user-interface similar to MATLAB * all basic MATLAB-type of matrix functions are provided * flexible 2-D graphics * design of linear control systems * packed matrix representation, as well as regular matrices * automatic loading of M-files ( open philosophy ) * build-in knowledge base development facilities (expert shell ) * knowledge repesentation : rules, facts, objects ( frames ) * simple knowledge base of the Systematic Design Approach is included * runs on Sun Sparc workstations (X-window), PC (DOS), DEC (Ultrix)
(1) Pang, G.K.H.,``Knowledge-based Control System Design'', in Recent Advances in Computer-Aided Control Systems Engineering, Jamshidi, M and Herget, C.J. (ed.), Elsevier Science Publishers, 1992.
(2) Pang, G.K.H., ``A Knowledge Environment for an Interactive Control System Design Package'', Automatica, Vol. 28. No. 3, pp. 473-491, May 1992.
[author]: EULER started as a MatLab clone. It is now a program, which can handle real, complex and interval numbers and matrices, has a 2D/3D graphics, a builtin modern programming language (extension of MatLab's), an exact scalar product, and the Windows 95 version can call functions in an external DLL. The OS/2 and Windows versions interact nicely with the GUI, and have a notebook style interface.
The Unix version is free, the OS/2 version free for educational use, and the Windows version cheap shareware.
These features make EULER an ideal tool for the tasks such as * Inspecting and discussing functions of one real or complex variable. * Viewing surfaces in parameter representation. * Linear algebra and eigenvalue computation. * Testing numerical algorithms. * Solving differential equations numerically. * Computing polynomials.
[author]: Prophet is an NIH-sponsored Unix workstation software package for life science computing. Prophet includes tools for data management, statistical analysis, curve fitting, data graphing, mathematical modeling, and genetic sequence analysis.
One of PROPHET's greatest assets is its new graphical user interface . Employing the latest advances in software technology, PROPHET lets you store, analyze and present Data Tables, Graphs, Statistical Analyses and Mathematical Modeling, and Sequence Analyses with high-resolution graphics and multiple windows. Anyone, from the computer-naive to the computer-sophisticate, can learn to use it quickly and effectively. PROPHET is a National Computing Resource for Life Science Research sponsored by the National Center for Research Resources of the National Institutes of Health.
Unfortunately, prophet is distributed in binary form only. It is large: it takes something like 65 MB disk space.
[author] Yorick is an interpreted language. It has: * A C-like language, but without declarative statements. Operations between arrays require no explicit loops, which accounts for Yorick's high speed. Scientific computing and numerical analysis are the goals of most Yorick sessions. * An X window system interactive graphics package. * A library of functions written in the Yorick language. Because Yorick can read either text or binary files, it can be used "out of the box" as a pre- and post-processor for most existing physics simulation programs.
As a pre-processor, you can write a Yorick program that produces complicated input files for a simulation. These might be based on output from other programs, or might require evaluation of complicated functions or involve a lot of repetition.
As a post-processor, Yorick allows you to compare the results of several simulations or to analyze results of a single simulation in ways you did not forsee when you ran it.
[author]: Portable, Extensible Toolkit for Scientific Computation (PETSc). PETSc provides many tools for the parallel (and uniprocessor), numerical solution of PDEs that require solving large-scale, sparse nonlinear systems of equations. PETSc includes nonlinear and linear equation solvers that employ a variety of Newton techniques and Krylov subspace methods. In addition, PETSc provides several parallel sparse matrix formats, including compressed row, block compressed row, and block diagonal storage.
PETSc is fully usable from Fortran, C and C++, and runs portably on on most UNIX systems. PETSc uses MPI for all parallel communication.
One of the unique features of PETSc is that it enables the application programmer to easily and efficiently assemble parallel vectors and sparse matrices. Users can create complete application programs for the parallel solution of nonlinear PDEs without writing much explicit message-passing code themselves.
In addition, PETSc is designed to facilitate extensibility. Thus, users can incorporate customized solvers and data structures when using the package.
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 q520, "Symbolic Algebra".
An good article on commercial software is: Braham, Robert. "Math & Visualization: new tools, new frontiers", IEEE Spectrum 32, 11 (November 1995), p. 19-36. The article contains tables comparing large number of commercial products. There is no mention of the many excellent free products though.
* q125.1, "NAG" * q125.2, "IMSL and PVWAVE" * q125.3, "Matlab and Simulink" * q125.4, "WavBox" * q125.5, "CraySoft Libraries" * q125.6, "IDL" * q125.7, "Comparison of IDL and Matlab" * q125.8, "Mlab" * q125.9, "Gauss" * q125.10, "MathViews" * q125.11, "Matcom: Matlab to C++ Compiler"
[author]: * Comprehensive Mathematical Functionality * integration and differentiation * transforms * differential equations * linear systems * interpolation and approximation * eigensystem analysis * optimization * special functions * basic matrix/vector operations * nonlinear equations * utilities
* Extensive Statistical Functionality * 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 * utilities
* 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 chacteristics * 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. PV-WAVE uses an intuitive fourth generation language (4GL) that analyzes and displays data as you enter commands. With it you can perform complex analysis, visualization, and application development quickly and interactively.
Robust integrated graphics, numerics, data I/O, and data management has made PV-WAVE the number one selling Visual Data Analysis software family.
PV-WAVE and the IMSL numerical and statistical routines, which are seamlessly integrated in PV-WAVE Advantage, are being used by more than 300,000 technical professionals on workstations worldwide.
The MathWorks, Inc. 24 Prime Park Way Natick, MA 01760-1500 (508) 653-1415
For a comparison of Matlab and IDL, see q125.7, "Comparison of IDL and Matlab".
[SJS]: Matlab 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.
[author]: 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.
As an extension of MATLAB, SIMULINK adds many features specific to dynamic systems while retaining all of MATLAB's general purpose functionality.
Using SIMULINK, you model a system graphically, sidestepping much of the nuisance associated with conventional programming.
Corporate Headquarters: Cray Research, Inc. 655 Lone Oak Drive Eagan, Minnesota 55121 (800) 289-2729 or (612) 683-3030,
[author] Fortran 90 compilers and NA library for Cray, Sparc, Macintosh, and Windows environments. * Seismic migration * Structural analysis * Financial modeling * Decision support analysis * General scientific * Computational chemistry * Computational physics * Intelligence, signal and image processing * Electronic simulation
Research Systems Inc.
http://www.rsinc.com/ Research Systems, Inc. Research Systems, Inc. 2995 Wilderness Place Boulder, CO 80301 USA Phone: 303-786-9900 email: firstname.lastname@example.org
For a comparison of IDL and Matlab, see q125.7, "Comparison of IDL and Matlab".
Following are two sets of comments on IDL: 1. By Pierre Maxted 2. By Amara Graps
1. 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 everytime. 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 homme 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 capabilites so that you can go straight to the bit you need (usually).
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 statments).
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 procesing 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 email@example.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 PVWave).
I've never liked the IDL documention 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 wierd way). [Note, however, the comments by Pierre Maxted above].
The anonymous ftp sites below contain public domain IDL code.
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.
Civilized Software, Inc. 7735 Old Georgetown Rd. #410 Bethesda, MD 20815 U.S.A. 1-301-656-4714 1-301-656-1069 fax Email: firstname.lastname@example.org
[author]: 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.
Aptech Systems, Inc., Tel: (206) 432-7855, Fax: (206) 432-7832 23804 South East Kent-Kangley Road Maple Valley, WA 98038 USA (206) 432-7855
[author]: The GAUSS Mathematical and Statistical System 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 inexpressions. 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.
[author] 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.
q125.11. Matlab to C++ Compiler and C++ Matrix Class Library
[author]: 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.
MAT<LIB>, a Matlab Compatible C++ Matrix Class Library, is designed for development of advanced scientific high-level C++ code. Evalution version of the MAT<LIB> can be downloaded from the home page noted above. The library includes Complex math, Binary and unary operators, Powerful indexing capabilites, Signal processing, File I/O, Linear algebra, String operations and Graphics. Over 300 mathematical functions are included in MAT<LIB>. MAT<LIB> 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.
* q140.1, "The (AMS) American Mathematical Society" * q140.2, "(SIAM) The Society for Industrial and Applied Mathematics" * q140.3, "ACM, Inc. (Association for Computing Machinery)" * q140.4, "IEEE The Institute of Electrical and Electronic Engineers"
General organization information, preprint titles, pointers to other preprint servers and net resources. Also includes:
MathDoc, the document delivery service offered by the AMS, provides copies of original journal, collection and conference proceedings articles from publications covered by Mathematical Reviews, Current Mathematical Publications, and the MathSci database. This costs roughly US$14. per ten pages, as of October 1995.
MathSciNet is a searchable database available on the World Wide Web. It is based on the data in Mathematical Reviews and Current Mathematical Publications, leading publications that catalog and review research literature in mathematics. This costs roughly US$5500. per year, as of October 1995.
q140.2. (SIAM) The Society for Industrial and Applied Mathematics
General organizational information, tables of contents of SIAM journals, and recently accepted articles. Society for Industrial and Applied Mathematics 3600 University City Science Center Philadelphia, PA 19104-2688 (215) 382-9800
Journals include: SIAM Scientific Computing SIAM Matrix Analysis SIAM Control and Optimization
q140.3. ACM, Inc. (Association for Computing Machinery)
[author]: The NA-Net is a system developed to serve the community of numerical analysts and other researchers. The Na-Net provides two independent databases and a weekly digest to its members. The Email Database is the electronic mail address of each of its members, and is capable of forwarding mail to them. In addition, this database serves as the distribution list for the NA Digest (see below). The White Pages Database is basically a directory service. It provides a way to exchange personal information among its members. Contained in the database are phone numbers, postal mailing addresses, research interests, affiliations, etc. The NA Digest is a way to provide its members with a weekly collection of articles on topics related to numerical analysis and those who practice it. To get on the mailing list for the digest and enter yourself in their database, you can use email or the World Wide Web. Take advantage of this very useful service!
http://math.liu.se/BIT/ BIT BIT emphasizes numerical methods in approximation, linear algebra, and ordinary and partial differential equations, but also publishes papers in areas such as numerical functional analysis and numerical optimization.
ETNA (Electronic Transactions in Numerical Analysis).
http://etna.mcs.kent.edu/ ETNA An online peer reviewed journal. Keyword searching. Most documents are postscript and may be downloaded. Started in 1993. Indexes only itself.
EJDE, The Electronic Journal of Differential Equations
U. C. Berkeley gopher://math.berkeley.edu U.C. Berkeley gopher site (large) ftp://math.berkeley.edu /pub U.C. Berkeley ftp site (large) http://math.berkeley.edu/ U.C. Berkeley ftp site (small) Berkeley has a large gopher & ftp site, including courseware, pointers to inet libraries, lecture notes, seminars, and software.
A Catalog of Mathematics Resources on WWW and the Internet http://mthwww.uwc.edu/wwwmahes/files/math01.html Catalog of Math Resources By M. Maheswaran, University of Wisconsin Marathon Center. Another large site, with a sizeable section on Applied Mathematics.
The Yahoo server's index of Mathematics topics. http://www.yahoo.com/Science/Mathematics Yahoo's Math index Includes commercial products, conferences, journals, and various subfields of mathematics, primarily in applied mathematics.
Scientific Applications on Linux Web Page http://lusk1.mines.edu/hjjou/linux_old.html Scientific Apps on Linux Contents: * Commercial Scientific Software * MatLab Alike and Related Packages * Mathematics and Statistics * Finite or Boundary Element * Numerical Analysis * Signal, Communication, Data and Image Processing/Visualization * CAD, Graph, Drawing and Modelling Tools * Scientific Data Plotting Packages * Scientific Data Plotting Libraries * General Purpose Graphic Libraries * Word Processing, Typesetting And Office Software * X-Window GUI Construction * Misc Scientific Packages or Libraries and Links * Other Links
See also specific subject areas in this FAQ at q80, "NA FAQ: Table of Contents".
Petkovsek, Marko; Wilf, Herbert; Zeilberger, Doron. 1995 "A=B" Publisher: AK PETERS, Ltd., 289 Linden Street, Wellesley, MA 02181 Telephone to (617) 235-2210. $39. ISBN 1-56881-063-6 [Donald Knuth] Science is what we understand well enough to explain to a computer. Art is everything else we do. During the past several years an important part of mathematics has been transformed from an Art to a Science: No longer do we need to get a brilliant insight in order to evaluate sums of binomial coefficients, and many similar formulas that arise frequently in practice; we can now follow a mechanical procedure and discover the answers quite systematically.
I'm especially pleased to see the appearance of this book, because its authors have not only played key roles in the new developments, they are also master expositors of mathematics. It is always a treat to read their publications, especially when they are discussing really important stuff.
Science advances whenever an Art becomes a Science. And the state of the Art advances too, because people always leap into new territory once they have understood more about the old. This book will help you reach new frontiers.
Acton, Forman S. 1990 Numerical methods that [usually] work Harper & Row, Publishers ISBN 0883854503.
[Daniel Pick] This book is almost worth its price just for the cathartic interlude in the middle of the book on what not to compute. You should require your students to read it, learn it, live it. You may find just giving them the railroad problem found at the beginning of the book a worthwhile exercise. [Bill Frensley] Amen, brother! The only complaint that I have about Acton's interlude is that after demolishing the notion of "fitting exponential data," he fails to point out that this is the inverse Laplace transform problem. Perhaps if everyone read this and made the connection, we would be spared the monthly "is there any good algorithm for the inverse Laplace transform?"
Golub, Gene H.; Van Loan, Charles F. 1989 Matrix Computations, Second edition Johns Hopkins, Baltimore ISBN 0-8018-3739-1 Telephone: 410-516-6900
[SJS] A classic for handling matrices. Many current programs are based on this text. Good mix of theory and implementation.
Golub, Gene H. 1984 Studies in Numerical Analysis Mathematical Association of America ISBN 0883851261.
[Daniel Pick] This contains several outstanding essays from several numerical analysts, including Wilkinson's The Perfidious Polynomial, which explains why rootfinding of polynomials numerically is such a tricky problem. It gives an great introduction to the thinking of recent numerical analysts. [Amara Graps] All of the chapters are really good- my favorites are: "Fast Poisson Solvers" and "Multigrid Methods for Partial Differential Equations."
Dahlquist, Germund; Bjorck, Ake 1974 Numerical Methods translated by Ned Anderson, Prentice-Hall, 1974.
A nice mix of theory and practice. Used as a text at Stanford, among other places.[John Chandler]
Forsythe, George; Moler, Cleve B. 1967 "Computer Solution of Linear Algebraic Systems" Prentice-Hall
I consider this possibly the best textbook I have ever seen in any field. Covers only linear systems, of course.[John Chandler]
Kahaner, David; Moler, Cleve; Nash, Stephen. 1989 Numerical Methods and Software Prentice Hall, Englewood Cliffs, NJ ISBN 0-13-627258-4 Telephone: 800-947-7700
An excellent book which touches on a variety of topics and makes use of the publicly available software like the QUADPACK and SLATEC libraries to illustrate the points. [Vijay Gupta]
Knuth, Donald E. 1981 Seminumerical algorithms, 2nd edition. Addison-Wesley.
Once was the reference; now a bit dated.
Lau, H. T. 1995 A Numerical Library in C for Scientists and Engineers CRC Press, Boca Raton, FL ISBN 0-8493-7376-X Telephone: 407-994-0555
This book is basically a compilation of program listings, with a diskette containing source code. The listings are accompanied by brief overviews of the algorithms involved, and generally include references. There is no discussion of theory. While the text by Stoer & Bulirsch is at the theoretical end of the NA spectrum, this text is at the application end. Although the program calling parameters are well described, as far as I could see the programs contain no internal documentation whatsoever. Although this book is copyright 1995, the references contain one source dated 1992 (Press et al's volume), one source dated 1981 (NUMAL in Fortran), and one source dated 1980 (NUMAL in Algol). The remainder of the references are dated 1976 and earlier. It's not clear to me that this book offers anything over Press et al's text. Lau has far less discussion of theory and methodology, and while Press's internal documentation of programs is poor, Lau's book has none whatsoever. [SJS]
Mathews, John H. 1992 NUMERICAL METHODS: for Mathematics, Science & Engineering Prentice Hall, Englewood Cliffs, NJ ISBN 0-13-624990-6 and ISBN 0-13-625047-5
Press, William H.; Teukolsky, Saul A.; Vetterling, William A.; Flannery, Brian P. 1992 Numerical Recipes in C, Second edition Cambridge University Press, Cambridge and New York ISBN 0-521-43108-5 Text ISBN 0-521-43720-2 Example book ISBN 0-521-43714-8 PC diskette, 5.25 inch ISBN 0-521-43724-5 PC diskette, 3.5 inch ISBN 0-521-43715-6 Mac diskette, 3.5 inch Telephone: 212-924-3900, 800-872-7423
Seperately purchasable diskette contains C source code. A compendium of a wide variety of NA areas. Contains some good introductions to theory and overviews of algorithms. The bridge from algorithm overview to implementation is often missing. The programs should be viewed with some skepticism. They are often poorly documented, and some users have reported numerical problems with t