Code Quality Rank: L3
Programming language: C
License: GNU General Public License v3.0 only

GSL alternatives and similar libraries

Based on the "Scientific Computing" category.
Alternatively, view GSL alternatives based on common mentions on social networks and blogs.

  • Torch

  • FFTW

    7.5 4.2 L4 GSL VS FFTW
  • Take part in the Developer Ecosystem Survey 2022 by JetBrains and get a chance to win a Macbook, a Nvidia graphics card, or other prizes. We’ll create an infographic full of stats, and you’ll get personalized results so you can compare yourself with other developers.
  • Trilinos

    Primary repository for the Trilinos Project
  • Kratos Multiphysics

    Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
  • preCICE

    A coupling library for partitioned multi-physics simulations, including, but not restricted to fluid-structure interaction and conjugate heat transfer simulations.

    Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS)
  • Units

    A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements
  • itpp

    IT++ library mirror/fork. C++ library of mathematical, signal processing and communication classes and functions.
  • d-SEAMS

    The d-SEAMS C++ core engine
  • Dimwits

    A compact C++ header-only library providing compile-time dimensional analysis and unit awareness
  • suanPan

    🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
  • Blitz++

    1.4 0.0 L2 GSL VS Blitz++
    Git mirror of Blitz++ at http://sourceforge.net/projects/blitz/

Do you think we are missing an alternative of GSL or a related project?

Add another 'Scientific Computing' Library


GSL - GNU Scientific Library

This is GSL, the GNU Scientific Library, a collection of numerical routines for scientific computing.

GSL is free software, you can redistribute it and/or modify it under the terms of the GNU General Public License.

The GNU General Public License does not permit this software to be redistributed in proprietary programs.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

About this repository

This repository contains a copy of the latest stable version of GSL, with two main additions:

CMake build instructions

Build with AMPL bindings

To build the AMPL bindings: 1) Make sure that the ASL submodule is initialized (in /ampl/thirdparty/asl). 2) Create a build directory and move there:

   mkdir build
   cd build

3) Initialize the build files with your desired generator, for example:

   cmake .. -G"Unix Makefiles"

4) Build the resulting build files accordingly, for example:

   make .

Build without AMPL bindings

If building GSL without the AMPL bindings:

1) Create a build directory and move there:

   mkdir build
   cd build

2) Initialize the build files with your desired generator, defining the variable NO_AMPL_BINDINGS`

   cmake .. -G"Unix Makefiles" -DNO_AMPL_BINDINGS=1

3) Build the resulting build files accordingly, for example:

   make .

Other build parameters

1) Defining GSL_DISABLE_TESTS skips the test generation, for example:

   cmake .. -DGSL_DISABLE_TESTS=1

2) There is experimental support to build only a subset of the GSL library; note that this is only supported when not building the AMPL bindings. To generate only some libraries of the GSL, define BUILDLIBS when calling cmake as a comma separated list of GSL directories. An example follows:

   cmake .. -DBUILDLIBS=ode-initval2,linalg -DNO_AMPL_BINDINGS=1

All the dependencies are handled automatically; please note that the tests often have additional dependencies therefore, to fully benefit from this facility, disable them. For example:


cmake .. -DBUILDLIBS=ode-initval2,linalg -DNO_AMPL_BINDINGS=1 -DGSL_DISABLE_TESTS=1


The current stable version of GSL is always available from ftp.gnu.org
in the directory /pub/gnu/gsl.

A list of mirror sites can be found at http://www.gnu.org/order/ftp.html


GSL follows the standard GNU installation procedure.  Please consult
the INSTALL file in this distribution for more detailed instructions.

For information about specific platforms and compilers see the
"Compilation Notes" section in the INSTALL file.

More information about GSL

The project homepage is http://www.gnu.org/software/gsl/

See the NEWS file for recent changes to the library.

The GSL Manual has been published and can be ordered from most
bookstores. The publication details are,

  GNU Scientific Library Reference Manual - Revised Second Edition, 
  M. Galassi et al, ISBN 0954161734 (620 pages, paperback).

The money raised from sales of the manual helps support the
development of GSL.

A Japanese translation of the reference manual is available from the
GSL website above (thanks to Daisuke TOMINAGA).

Reporting Bugs

A list of known bugs can be found in the BUGS file.  Details of
compilation problems can be found in the INSTALL file.

If you find a bug which is not listed in these files please report it
to [email protected]

All bug reports should include:

       The version number of GSL, and where you obtained it.
       The hardware and operating system
       The compiler used, including version number and compilation options
       A description of the bug behaviour
       A short program which reproducibly exercises the bug

It is useful if you can check whether the same problem occurs when the
library is compiled without optimization.  Thank you.

Any errors or omissions in the manual can also be reported to the
same address.

Contributing to GSL

If you are interested in participating in GSL development, please see
the webpage at http://www.gnu.org/software/gsl/

*Note that all licence references and agreements mentioned in the GSL README section above are relevant to that project's source code only.