GNU Scientific Library with CMake build support and AMPL bindings

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
    
  3. Turn off building of documentation via:

    cmake .. -DDOCUMENTATION=OFF
    

Availability

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

Installation

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/

Owner
AMPL
A modeling language for mathematical programming
AMPL
Comments
  • I only wish to build a subset of GSL's routines; how do I do this via CMake?

    I only wish to build a subset of GSL's routines; how do I do this via CMake?

    I have a project that only requires a handful of routines from GSL---for example, those in gsl/ode-initval2.

    Is there a "clean" way (via some CMake options/variables?) to only build certain folders, and only include those in the final static lib libgsl.a?

    Currently, my project's build time is dominated by GSL; it seems inefficient to build the entire library when I'm only using a small subset of it.

  • Can't set GSL_RNG_SEED and GSL_RNG_TYPE within an AMPL session

    Can't set GSL_RNG_SEED and GSL_RNG_TYPE within an AMPL session

    Testing under Windows, the example at the bottom of http://ampl.github.io/amplgsl/rng.html appears to give the same random results regardless of the seed setting:

    ampl: option GSL_RNG_TYPE 'taus'; ampl: option GSL_RNG_SEED 123; ampl: include gsl.ampl; ampl: print gsl_ran_gaussian(1); 0.1339186081186759 ampl: print gsl_ran_gaussian(1); -0.0881009918314384 ampl: print gsl_ran_gaussian(1); 1.6744084062537739 ampl: quit sw: sw: ampl ampl: option GSL_RNG_TYPE 'taus'; ampl: option GSL_RNG_SEED 237; ampl: include gsl.ampl; ampl: print gsl_ran_gaussian(1); 0.1339186081186759 ampl: print gsl_ran_gaussian(1); -0.0881009918314384 ampl: print gsl_ran_gaussian(1); 1.6744084062537739 ampl:

    Also in http://ampl.github.io/amplgsl/rng.html it is stated that

    In AMPL version 20120830 and later the standard randseed option can be used instead of GSL_RNG_SEED to specify the random number generator seed.

    But changes to AMPL's option randseed do not appear to affect the seed used for the GSL random functions, even if they are made before loading gsl.ampl. It does work to invoke set GSL_RNG_SEED=1 before starting the AMPL process.

    Similar comments apply to GSL_RNG_TYPE.

  • building static libs fails during install

    building static libs fails during install

    building static libraries with VS2008 and VS2010 fails during installation since it tries to copy PDB files which do not exist. The commit in question is 651b6af5fa89b4954e67ad2eae6c7bdd1d2ef77c Going back to 8f07f98381db693f25d99e507dcb9b70c2026c00 (which I tagged v2.1-static) works for my application which expects static .lib files for linkage.

  • Problems with building shared libraries with VS14?

    Problems with building shared libraries with VS14?

    I'm trying to compile GSL with shared library support using visual studio community 2015. This is to provide windows support in the conda recipe: https://github.com/conda-forge/gsl-feedstock/issues/7

    The issue I'm having is as follows. I run:

    cmake . -DBUILD_SHARED_LIB=1
    msbuild GSL.sln
    

    I then get an error:

    "C:\jk-work\gsl\GSL.sln" (default target) (1) ->
    "C:\jk-work\gsl\ALL_BUILD.vcxproj.metaproj" (default target) (2) ->
    "C:\jk-work\gsl\block_test.vcxproj.metaproj" (default target) (4) ->
    "C:\jk-work\gsl\gsl.vcxproj.metaproj" (default target) (5) ->
    "C:\jk-work\gsl\gsl.vcxproj" (default target) (10) ->
    (Link target) ->
      gsl.def : error LNK2001: unresolved external symbol gsl_multilarge_nlinear_df
     [C:\jk-work\gsl\gsl.vcxproj]
      gsl.def : error LNK2001: unresolved external symbol gsl_multilarge_nlinear_fd
    fvv [C:\jk-work\gsl\gsl.vcxproj]
      C:/jk-work/gsl/Debug/gsl.lib : fatal error LNK1120: 2 unresolved externals [C
    :\jk-work\gsl\gsl.vcxproj]
    
        288 Warning(s)
        3 Error(s)
    

    Apologies if I'm doing something stupid here; I'm a windows noob!

  • eigen_test fails on Ubuntu Lucid x86

    eigen_test fails on Ubuntu Lucid x86

    Log:

    18/51 Test #18: eigen_test .......................***Failed    0.34 sec
    FAIL: gen, direct eigenvalue(4) imag, random (-0.481216772353650846 observed vs 0.481216772353650846 expected) [877968]
    FAIL: gen, direct eigenvalue(5) imag, random (0.481216772353650901 observed vs -0.481216772353650846 expected) [877970]
    FAIL: gen, direct eigenvalue(15) imag, random (6.85872455924790447 observed vs -6.85872455924790536 expected) [877990]
    FAIL: gen, direct eigenvalue(16) imag, random (-6.85872455924790536 observed vs 6.85872455924790625 expected) [877992]
    
  • Give an option to statically link runtime

    Give an option to statically link runtime

    It should be possible to generate Visual Studio projects that are building into dll but with statically linked VC++ runtime libraries, so that anyone can run this dll library without the need for vc_redist etc.

    here is one approach: http://stackoverflow.com/questions/10113017/setting-the-msvc-runtime-in-cmake

  • Can't compile with VS 2015 with option -DGSL_SHARED=ON (8 unresolved externals)

    Can't compile with VS 2015 with option -DGSL_SHARED=ON (8 unresolved externals)

    I just wanted to get dll files. Compilation to *.lib files went just fine, but compilation to shared library failed.

    Severity Code Description Project File Line Suppression State Error LNK2001 unresolved external symbol gsl_sf_legendre_sphPlm_array gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_sf_legendre_sphPlm_deriv_array gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_sf_legendre_Plm_deriv_array gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_sf_legendre_Plm_array gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_sf_legendre_array_size gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_multifit_fdfsolver_dif_fdf gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_bspline_deriv_free gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK2001 unresolved external symbol gsl_bspline_deriv_alloc gsl C:\Users\Speedziarz\Downloads\gsl-master\gsl.def 1
    Error LNK1120 8 unresolved externals gsl C:\Users\Speedziarz\Downloads\gsl-master\Release\gsl.lib 1

    Another thing is that it would be nice to have an option to compile to x64 too (VS listed only Win32 configuration).

  • Clarify cmake build instructions

    Clarify cmake build instructions

    It seems the purpose of this project is to provide a cmake for the project. However, the INSTALL file does not give instructions on how to build with cmake. Although this may seem obvious, it makes one uncertain of whether or not cmake will work and/or whether the old configure/make/make install will work in the project. Also, there's a deeply nested submodule that needs to get an init and update before one can start the build. Such documentation might expose the use of NO_AMPL_BINDINGS and explain what the impact of setting this flag is. Do certain GSL features require the AMPL bindings or is this an extension of the GSL feature set?

  • Linking error on Windows

    Linking error on Windows

    Hello! I am trying to compile examples from this page. Operating system: Windows 10 Compiler: msvs 2019 Build system: cmake GSL: tried both 2.4 and 2.6 from conda

    cmake_minimum_required(VERSION 3.15)
    project(test)
    
    find_package(GSL REQUIRED)
    
    add_executable(test)
    target_sources(test PRIVATE main.cpp)
    target_include_directories(test PRIVATE "${GSL_INCLUDE_DIRS}")
    target_link_libraries(test "${GSL_LIBRARIES}")
    
    #include <stdio.h>
    #include <gsl/gsl_errno.h>
    #include <gsl/gsl_matrix.h>
    #include <gsl/gsl_odeiv2.h>
    
    int
    func (double t, const double y[], double f[],
          void *params)
    {
        (void)(t); /* avoid unused parameter warning */
        double mu = *(double *)params;
        f[0] = y[1];
        f[1] = -y[0] - mu*y[1]*(y[0]*y[0] - 1);
        return GSL_SUCCESS;
    }
    
    int
    jac (double t, const double y[], double *dfdy,
         double dfdt[], void *params)
    {
        (void)(t); /* avoid unused parameter warning */
        double mu = *(double *)params;
        gsl_matrix_view dfdy_mat
                = gsl_matrix_view_array (dfdy, 2, 2);
        gsl_matrix * m = &dfdy_mat.matrix;
        gsl_matrix_set (m, 0, 0, 0.0);
        gsl_matrix_set (m, 0, 1, 1.0);
        gsl_matrix_set (m, 1, 0, -2.0*mu*y[0]*y[1] - 1.0);
        gsl_matrix_set (m, 1, 1, -mu*(y[0]*y[0] - 1.0));
        dfdt[0] = 0.0;
        dfdt[1] = 0.0;
        return GSL_SUCCESS;
    }
    
    int
    main (void)
    {
        double mu = 10;
        gsl_odeiv2_system sys = {func, jac, 2, &mu};
    
        gsl_odeiv2_driver * d =
                gsl_odeiv2_driver_alloc_y_new (&sys, gsl_odeiv2_step_rk8pd,
                                               1e-6, 1e-6, 0.0);
        int i;
        double t = 0.0, t1 = 100.0;
        double y[2] = { 1.0, 0.0 };
    
        for (i = 1; i <= 100; i++)
        {
            double ti = i * t1 / 100.0;
            int status = gsl_odeiv2_driver_apply (d, &t, ti, y);
    
            if (status != GSL_SUCCESS)
            {
                printf ("error, return value=%d\n", status);
                break;
            }
    
            printf ("%.5e %.5e %.5e\n", t, y[0], y[1]);
        }
    
        gsl_odeiv2_driver_free (d);
        return 0;
    }
    

    I am getting this error: error LNK2001: unresolved external symbol gsl_odeiv2_step_rk8pd

    The same example works fine on Linux. The basic example from here works fine on Windows, so the problem is just the example above. Can you please point out what is wrong? Thanks

  • sinc function not available

    sinc function not available

    It appears that the GSL trigonometric functions have not been included. Many are built into AMPL anyway, but not all.

    In particular one user needs sinc(x) = (if x != 0 then sin(x)/x else 1). This function can be implemented in AMPL using an if-then-else, but in the user's example that becomes awkward due to the large number of terms that use sinc and the complexity of the expressions that are arguments to sinc.

  • Add logic to export CMake targets (gsl-config.cmake)

    Add logic to export CMake targets (gsl-config.cmake)

    • Generate a gsl-config.cmake file that can be used with find_package in CONFIG mode. If GSL is found using this mechanism, import targets GSL::gsl and GSL::gslcblas will be defined for the libraries.
      • Use the standard technique via CMakePackageConfigHelpers
      • Add some logic so that the generated import targets for GSL::gsl also define the directory that contains the installed GSL header files.
      • The imported target GSL::gsl will automatically provide the dependency on GSL::gslcblas.
    • In support of the above feature:
      • In CMakeLists.txt, replace the use of include_directories with target_include_directories.
    • Add an install rule to provide Visual Studio .pdb files for Debug builds.
  • can not link

    can not link

    wingslf.obj : error LNK2001: 无法解析的外部符号 gsl_wavelet_daubechies 1>wingslf.obj : error LNK2001: 无法解析的外部符号 gsl_wavelet_haar 1>wingslf.obj : error LNK2001: 无法解析的外部符号 gsl_wavelet_bspline 1>D:\work\TTHS\code\win gslf\x64\Debug\wingslf.exe : fatal error LNK1120: 3 个无法解析的外部命令

  • Msvc runtime errors

    Msvc runtime errors

    Default build without any options is ok. But if I try to change runtime options I will receive link errors. CMake options didn't work as expected. I provided options BUILD_DYNRT_LIBS:BOOL=ON and MSVC_RUNTIME_DYNAMIC:BOOL=ON but received error error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in gsl-test.cc.obj I also provided additional option BUILD_MT_LIBS:BOOL=ON but error was the same. Looks like missing runtime flag for some targets.

  • Which dll to use? Where to find the corresponding lib or dll.a?

    Which dll to use? Where to find the corresponding lib or dll.a?

    I'd build the GSL shared library under MSys2:

    pacman -S git cmake ninja gcc
    
    git clone https://github.com/ampl/gsl.git
    cd gsl
    mkdir build
    cd build
    cmake -DBUILD_SHARED_LIBS:BOOL=ON -G "Ninja" ..
    cmake --build .
    ctest --output-on-failure
    

    Everything goes fine, thank you very much for providing this excellent CMake support.

    My questions now:

    • In directory bin/, I find amplgsl.dll and msys-gsl.dll. What is the relation between these two? Do I need to link to both of them?

    • Where are the corresponding lib or dll.a files? In the build main directory, I find libgsl.dll.a. Why yet another name?

  • (windows) make check fails on spmatrix

    (windows) make check fails on spmatrix

    In windows with MSYS2+minGW64 and running make -i check results in the following failure:

    make[1]: Entering directory '/home/Soren/gsl/spmatrix'
    make  test.exe
    make[2]: Entering directory '/home/Soren/gsl/spmatrix'
    gcc -DHAVE_CONFIG_H -I. -I..  -I..   -g -O2 -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.c
    mv -f .deps/test.Tpo .deps/test.Po
    /bin/sh ../libtool  --tag=CC   --mode=link gcc  -g -O2   -o test.exe test.o libgslspmatrix.la ../bst/libgslbst.la ../test/libgsltest.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../block/libgslblock.la  ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la -lm
    libtool: link: gcc -g -O2 -o .libs/test.exe test.o  ./.libs/libgslspmatrix.a ../bst/.libs/libgslbst.a ../test/.libs/libgsltest.a ../matrix/.libs/libgslmatrix.a ../vector/.libs/libgslvector.a ../blas/.libs/libgslblas.a ../cblas/.libs/libgslcblas.dll.a ../block/.libs/libgslblock.a ../sys/.libs/libgslsys.a ../err/.libs/libgslerr.a ../utils/.libs/libutils.a ../rng/.libs/libgslrng.a -L/mingw64/lib
    make[2]: Leaving directory '/home/Soren/gsl/spmatrix'
    make  check-TESTS
    make[2]: Entering directory '/home/Soren/gsl/spmatrix'
    make[3]: Entering directory '/home/Soren/gsl/spmatrix'
    FAIL: test.exe
    make[4]: Entering directory '/home/Soren/gsl/spmatrix'
    make[4]: Nothing to be done for 'all'.
    make[4]: Leaving directory '/home/Soren/gsl/spmatrix'
    ============================================================================
    Testsuite summary for gsl 2.6
    ============================================================================
    # TOTAL: 1
    # PASS:  0
    # SKIP:  0
    # XFAIL: 0
    # FAIL:  1
    # XPASS: 0
    # ERROR: 0
    ============================================================================
    See spmatrix/test-suite.log
    ============================================================================
    make[3]: [Makefile:728: test-suite.log] Error 1 (ignored)
    make[3]: Leaving directory '/home/Soren/gsl/spmatrix'
    make[2]: Leaving directory '/home/Soren/gsl/spmatrix'
    make[1]: Leaving directory '/home/Soren/gsl/spmatrix'
    Making check in splinalg
    make[1]: Entering directory '/home/Soren/gsl/splinalg'
    make  test.exe
    make[2]: Entering directory '/home/Soren/gsl/splinalg'
    
    

    The contents of test-suite.log is:

    ======================================
       gsl 2.6: spmatrix/test-suite.log
    ======================================
    
    # TOTAL: 1
    # PASS:  0
    # SKIP:  0
    # XFAIL: 0
    # FAIL:  1
    # XPASS: 0
    # ERROR: 0
    
    .. contents:: :depth: 2
    
    FAIL: test
    ==========
    
    FAIL: gsl_spmatrix_long_double_fscanf[53,107](COO) [289]
    FAIL: gsl_spmatrix_long_double_fscanf[53,107](CSC) [290]
    FAIL: gsl_spmatrix_long_double_fscanf[53,107](CSR) [291]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[53,107](COO) [1313]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[53,107](CSC) [1314]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[53,107](CSR) [1315]
    FAIL: gsl_spmatrix_long_double_fscanf[40,20](COO) [1607]
    FAIL: gsl_spmatrix_long_double_fscanf[40,20](CSC) [1608]
    FAIL: gsl_spmatrix_long_double_fscanf[40,20](CSR) [1609]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[40,20](COO) [2631]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[40,20](CSC) [2632]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[40,20](CSR) [2633]
    FAIL: gsl_spmatrix_long_double_fscanf[30,30](COO) [2925]
    FAIL: gsl_spmatrix_long_double_fscanf[30,30](CSC) [2926]
    FAIL: gsl_spmatrix_long_double_fscanf[30,30](CSR) [2927]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[30,30](COO) [3949]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[30,30](CSC) [3950]
    FAIL: gsl_spmatrix_complex_long_double_fscanf[30,30](CSR) [3951]
    

    The rest of the make runs fine, spmatrix is the only point of failure.

  • Shared lib instead of static ?

    Shared lib instead of static ?

    Hi,

    I'm trying to build the library for Windows 64-bit, using Microsoft VS2013. I have successfully built static version of library. How can I build shared version (.dll) instead ?

    Kind regards !

Libft is an individual project at 42 that requires us to re-create some standard C library functions including some additional ones that can be used later to build a library of useful functions for the rest of the program.

?? Index What is Libft? List of Functions Technologies ✨ What is Libft? Libft is an individual project at 42 that requires us to re-create some standa

Jan 17, 2022
A template C project using CMAKE, logging library and basic memory handling.

C Project template Aim of this Repository is to create a template repository for C executable projects with following properties: Cmake project Loggin

May 23, 2022
gsl-lite – A single-file header-only version of ISO C++ Guidelines Support Library (GSL) for C++98, C++11, and later

gsl-lite: Guidelines Support Library for C++98, C++11 up metadata build packages try online gsl-lite is an implementation of the C++ Core Guidelines S

Jun 16, 2022
gsl-lite – A single-file header-only version of ISO C++ Guidelines Support Library (GSL) for C++98, C++11, and later

gsl-lite: Guidelines Support Library for C++98, C++11 up metadata build packages try online gsl-lite is an implementation of the C++ Core Guidelines S

Jun 16, 2022
Bsl - Rust 2018 and C++20, "constexpr everything", AUTOSAR compliant header-only library intended to support the development of critical systems applications
Bsl - Rust 2018 and C++20,

Description The Bareflank Support Library (BSL) is a Rust 2018 and C++20, "constexpr everything", AUTOSAR compliant header-only library intended to su

Jun 18, 2022
Concise CMake templates for creating C++ libraries or executables.

cmake_templates Concise cmake templates for creating C++ libraries and executables. Creating a normal cmake project Copy the chosen project template s

Apr 28, 2022
Guidelines Support Library

GSL: Guidelines Support Library The Guidelines Support Library (GSL) contains functions and types that are suggested for use by the C++ Core Guideline

Jun 20, 2022
Guidelines Support Library

GSL: Guidelines Support Library The Guidelines Support Library (GSL) contains functions and types that are suggested for use by the C++ Core Guideline

Jun 14, 2022
C++11/14/17 std::optional with functional-style extensions and reference support

optional Single header implementation of std::optional with functional-style extensions and support for references. Clang + GCC: MSVC: std::optional i

Jun 21, 2022
C++ STL in the Windows Kernel with C++ Exception Support

C++ STL in Windows Drivers This project uses MSVC C++ STL in a Windows Kernel Driver. In this solution jxystl.lib is implemented as a kernel-tuned, po

Jun 24, 2022
Library that simplify to find header for class from STL library.

Library that simplify to find header for class from STL library. Instead of searching header for some class you can just include header with the class name.

Jun 7, 2022
Thrust is a C++ parallel programming library which resembles the C++ Standard Library.

Thrust: Code at the speed of light Thrust is a C++ parallel programming library which resembles the C++ Standard Library. Thrust's high-level interfac

Jun 22, 2022
jkds is a modern header-only C++20 library that complements the standard library.

jkds is a modern header-only C++20 library that complements the standard library. It provides generic atypical data structures, ergonomic functional programming abstractions, and then some.

May 24, 2022
expected lite - Expected objects in C++11 and later in a single-file header-only library

expected lite: expected objects for C++11 and later expected lite is a single-file header-only library for objects that either represent a valid value

Jun 18, 2022
optional lite - A C++17-like optional, a nullable object for C++98, C++11 and later in a single-file header-only library

optional lite: A single-file header-only version of a C++17-like optional, a nullable object for C++98, C++11 and later Contents Example usage In a nu

Jun 7, 2022
span lite - A C++20-like span for C++98, C++11 and later in a single-file header-only library

span lite: A single-file header-only version of a C++20-like span for C++98, C++11 and later Contents Example usage In a nutshell License Dependencies

Jun 22, 2022
string_view lite - A C++17-like string_view for C++98, C++11 and later in a single-file header-only library

string_view lite: A single-file header-only version of a C++17-like string_view for C++98, C++11 and later Contents Example usage In a nutshell Licens

Jun 22, 2022
variant lite - A C++17-like variant, a type-safe union for C++98, C++11 and later in a single-file header-only library

variant lite: A single-file header-only version of a C++17-like variant, a type-safe union for C++98, C++11 and later Contents Example usage In a nuts

Jun 9, 2022
Bionic BSD-3-ClauseBionic - Google's standard library, developed for Android. BSD-3-Clause

bionic bionic is Android's C library, math library, and dynamic linker. Using bionic as an app developer See the user documentation. Working on bionic

Jun 13, 2022