The Open Scientific Library (OSL) is a free, open-source library for scientific and statistical computing in Fortran. The source code is available under a permissive license, a three-clause BSD license, suitable for use in both free software and commercial applications as well as academic research since the use and redistribution of the library are not restricted.
At present, the library is written in standard Fortran 95 using an object-oriented style when applicable. In the future, when Fortran 2003 compilers become more commonplace, the interface will be redesigned to take advantage of new Fortran 2003 features.
The library currently covers the following areas:
| Random number generation | Probability distributions |
| Statistics | Histograms |
| Permutations | Combinations |
| Optimization | Markov Chain Monte Carlo |
| Simulated Annealing | Sorting |
| Numerical differentiation | Chebyshev polynomials |
| Solving linear and nonlinear systems | Vector and matrix operations |
| Interpolation | IEEE floating-point |
| Special functions | Code profiling |
Note: The OSL is still in a very preliminary state and only a development version is available at this time. No versioned releases have been made and probably will not be available until the interface has stabilized sufficiently. Until further notice, the API may change without warning. Furthermore, some of the above listed features are not yet available in the public repository as the repackging and API design are pending.
Motivation
The goal of the OSL is to provide a freely-available Fortran library for scientific computing which does not restrict scientific cooperation. The OSL aims to be a comprehensive library without being overly complex. That is, it should be suitable both for installing system-wide as a shared library in binary form, and as a modular collection of routines that are easy to incorporate in small-scale projects in source code form.
Download
The complete source code, including the documentation, examples, tests, and website, can be downloaded here:
- Current development snapshot: osl.tar.gz
Documentation
A reference manual is available in PDF format and API documentation is available for each module in HTML format below. A collection of examples is also available.
Modules
Individual modules are listed below with brief descriptions, dependencies, and links to the API documentation.
osl_core - Contains precision parameters, mathematical constants, special functions, and other core procedures.
osl_dist - PDFs, CDFs, quantile functions of common probability distributions. Depends on osl_core.
osl_rng - Interface for generating pseudo-random numbers from various common distributions. Depends on osl_core.
osl_sort - Routines for sorting vectors of numbers. Depends on osl_core.
osl_stat - Procedures for generating sample statistics and for carrying out more specialized statistical procedures. Depends on osl_core and osl_dist.
osl_special - Special functions. Depends on osl_core.
osl_permutation - Procedures for listing, ranking, unranking, and manipulating permutations. Depends on osl_core and osl_special.
osl_combination - Procedures for listing, ranking, unranking, and manipulating combinations. Depends on osl_core and osl_special.
osl_diff - Numerical differentiation routines. Depends on osl_core.
osl_siman - An interface for optimization via simulated annealing. Depends on osl_core, osl_rng.
osl_func - A collection of test functions. Depends on osl_core.
Related Projects
Projects written in Fortran:
- BLAS - Basic Linear Algebra Subprograms.
- FGSL - A Fortran interface to the GNU Scientific Library.
- FLIBS - A collection of Fortran modules.
- LAPACK - The standard package for numerical linear algebra.
- LAPACK95 - A Fortran 95 interface to LAPACK.
- MINPACK - Routines for solving nonlinear equations and nonlinear least squares problems.
- SLATEC - A comprehensive library general purpose mathematical and statistical routines, written in Fortran 77.
Projects written in other languages:
- Apophenia - A statistical library for working with data sets and statistical models.
- GNU Scientific Library - A comprehensive numerical library for C and C++ programmers.
- O2scl - An object-oriented library for numerical programming in C++.
- QuantLib - A free/open-source library for quantitative finance.
Project Background
The Open Scientific Library originated from a library of Fortran procedures created by Jason Blevins in 2006 while working on his Ph.D. at Duke University. The first subset of these procedures were repackaged, along with an initial version of the reference manual, and released to the public in September of 2009 under a permissive BSD license to stimulate further development.
Timeline
- Initial public release in September 2009.
- Project conceived and initial procedures written in 2006.