Difference between revisions of "NumLib"

From Free Pascal wiki
(cleanup, delete useless info about folders)
(Units)
Line 33: Line 33:
 
== Units ==
 
== Units ==
  
* iom: read and write vector  
+
* det: Determinants for different kinds of matrices (different with respect to symmetry)
* inv: calculate inverse of matrices
+
* dsl: Unknown unit. There doesn't exist any documentation for it, it isn't commented, and cannot recognize the algortism directly. Suffixes of the procedures seem to indicate some features of the matrixtype (from unit SLE). Probably some pivot matrix?
 +
* eig, eigh1, eigh2: Unknown units.
 +
* int: Integration. This routine is fit for smooth "integrand" so no singularities, sharp edges, or quickly oscillating behaviour.
 +
* inv: Calculate inverses for different kinds of matrices (different with respect to symmetry).
 +
* iom: Basic in/output of matrix and vector types. Maybe too simple for your application, but still handy for logging and debugging.
 +
* ipf: Interpolate and (curve) fitting. Slegpb in this unit patched parameters slightly. Units IPF and sle were not in the same revision in this numlib copy (which was a copy of the work directory of the author).
 +
 
  
 
[[Category:Packages]]
 
[[Category:Packages]]
 
[[Category:SciTech]]
 
[[Category:SciTech]]

Revision as of 08:46, 14 August 2020

About

NumLib is a numerical package.

Authors: Kees van Ginneken, Wil Kortsmit and Loek van Reij of the Computational centre of the Eindhoven University of Technology.

It is preinstalled in Free Pascal in the folder packages/numlib. Ported to FPC: by Marco van de Voort.

NumLib Documentation

History

During the early nineties, I did my numeric math classes using this library. About a decade later (2003?), because of an existing contact with mr Tom Verhoeff, I asked him if the lib still existed. He contacted the original authors, and was able to provide a copy of the manual, and a backup of the authors working directory (the author was retired iirc), as well as verbal permission to release the package under FPC's LGPL license.

I cleaned up most of the sources in 2003-2004, and in 2005 I got some feedback, patches and help with the documentation from Darius Blaszijk (Jedi-Math). However that stopped, Darius' help was invaluable though, since I received back critical sources from him, after my house was broken into, and my computer was stolen.

During early 2010 I mentioned the package on the German lazarusforum, and decided to give it a boost.

Unfortunately I no longer had the scanned copy from the manual, so I'm redoing that work bit by bit (and put it on the FPC server this time)

List of sources

I originally received three items:

  1. a directory with the main sources.
  2. a separate directory with examples, the data file the examples operate on and tex sources.
  3. a printed copy of the manual.

The printed copy is newer than the Tex sources of the manual, but the author didn't have the sources of that revision. The library sources are newer than both the source docs as the printed docs. All documentation is in a very mathematically formal Dutch.

These three sources will have to be linked and made consistent, and the "tex" document sources needs to be updated to a more modern "latex" dialect, and enhanced/corrected with the (more recent) scans of the printed version. The already finished units can be used as a template.

When this is finished, a classes based interface could be added.

Units

  • det: Determinants for different kinds of matrices (different with respect to symmetry)
  • dsl: Unknown unit. There doesn't exist any documentation for it, it isn't commented, and cannot recognize the algortism directly. Suffixes of the procedures seem to indicate some features of the matrixtype (from unit SLE). Probably some pivot matrix?
  • eig, eigh1, eigh2: Unknown units.
  • int: Integration. This routine is fit for smooth "integrand" so no singularities, sharp edges, or quickly oscillating behaviour.
  • inv: Calculate inverses for different kinds of matrices (different with respect to symmetry).
  • iom: Basic in/output of matrix and vector types. Maybe too simple for your application, but still handy for logging and debugging.
  • ipf: Interpolate and (curve) fitting. Slegpb in this unit patched parameters slightly. Units IPF and sle were not in the same revision in this numlib copy (which was a copy of the work directory of the author).