There is a need for scientists and engineers to have a numerical librarythat:is free (in the sense of freedom, not in the sense of gratis; see theGNU General Public License), so that people can use that library,redistribute it, modify it ...is written in C using modern coding conventions, calling conventions,scoping ...is clearly and pedagogically documented; preferably with TeXinfo, so asto allow online info, WWW and TeX output.uses top quality state-of-the-art algorithms.is portable and configurable using autoconf and automake.basically, is GNUlitically correct.There are strengths and weaknesses with existing libraries:
NSWC is the Naval Surface Warfare Center numerical library. Itis a large public-domain Fortran library, containing a lot ofhigh-quality code. Documentation for the library is hard to find, onlya few photocopies of the printed manual are still in circulation.
Imsl Fortran Numerical Library Downloadl
CCMATH by Daniel A. Atkinson. A C numerical library coveringsimilar areas to GSL. The code is quite terse. Earlier versions wereunder the GPL but unfortunately it has changed to the LGPL in recentversions.
In writing a numerical library there is a unavoidable conflict betweencompleteness and simplicity. Completeness refers to the ability toperform operations on different objects so that the group is"closed". In mathematics objects can be combined and operated on in aninfinite number of ways. For example, I can take the derivative of ascalar field with respect to a vector and the derivative of a vectorfield wrt a scalar (along a path).
There is a definite tendency to unconsciously try to reproduce all thesepossibilities in a numerical library, by adding new features one byone. After all, it is always easy enough to support just one morefeature.... so why not?
If the project has a philosophy it is to "Think in C". Since we areworking in C we should only do what is natural in C, rather than tryingto simulate features of other languages. If there is something which isunnatural in C and has to be simulated then we avoid using it. If thismeans leaving something out of the library, or only offering a limitedversion then so be it. It is not worthwhile making the libraryover-complicated. There are numerical libraries in other languages, andif people need the features of those languages it would be sensible forthem to use the corresponding libraries, rather than coercing a Clibrary into doing that job.
afnl - Fortran 90 numerical library with modules for numerical types, constants, error handling, integration, optimization, linear algebra, sorting and search, special functions, statistics, polynomials, root-finding, Fourier transforms, and dates and times, by Alberto Ramos (OS: GPL-2.0 License)
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.
Abaqus - Finite Element Solutions: _overview.htmlAnsus - Simulation Solutions: Tidy - a Cleanup Utility for Fortran 77 source programs: University of Berkley Commercial Computational Products List: -berkeley.ansys.com/cfd/CFD_codes_c.html John Burkard's Software Source Codes, (Fortran, Matlab, C++, Perl,...), Tutorials, etc.: burkardt/ C to Fortran Converter: C2J (C to Java) Converter: -us.com/product_c2j.jsp CFortran - An interface tool between Fortran and C: -zeus.desy.de/burow/cfortran/ CERN - Index of CERNLIB: CERNLIB: CGYWIN - A Unix environment for Windows: Clodius, W.B.'s Fortran Tools: _tools.html Fortran clustering code of Glenn Milligan: csna/Milligan/readme.html Command Line Parser: F2KCLI: Computer Science On-line Courses by John David Stone, Grinnell College: stone/courses/ Convert Fortran 77 to Free Form: CVF Examples: C++ Tutorial for Scientists: RPozo/c++class/ Dave Gemini's Fortran Source Codes: Designing and Building Parallel Programs, by Ian Foster: -unix.mcs.anl.gov/dbpp/ Dictionary of Algorithms and Data Structures: DISLIN Scientific Plotting Software: or EEVL Guide to Engineering, Mathematics, Computing On-line books: Electronic Library (of Fortran Source Code): Electronic Textbook - Statistics: Equation Technology High Performance Libraries (free download): ; MTask manual: FFT - C library to compute Non-equispaced Discrete Fourier Transform in 1, 2, 3D, of arbitrary size complex data (free) by Stefan Kunis and Daniel Potts: -luebeck.de/potts/nfft/ and Flash Sort: Fortran to C Converter (search on "f2c"): Fortran to Common Lisp: -to-Lisp.htmlFortran to Java Converter: and doolin/code/ Fortran to Pascal: Fortran to Visual Basic Conversion Service: Fortran to Visual Basic Converter - FORBAS: _bas/ F2VB: , Conv_for_BAS: _and_prices.html Fortran Library Training Materials: Fortran Market Freeware: 2ff7e9595c
Comments