All Projects → emsr → tr29124_test

emsr / tr29124_test

Licence: GPL-3.0 license
C++ special math functions

Programming Languages

C++
36643 projects - #6 most used programming language
HTML
75241 projects
TeX
3793 projects
javascript
184084 projects - #8 most used programming language
Gnuplot
187 projects
CMake
9771 projects

Projects that are alternatives of or similar to tr29124 test

Abacus
Advanced Combinatorics and Algebraic Number Theory Symbolic Computation library for JavaScript, Python
Stars: ✭ 16 (+0%)
Mutual labels:  polynomials
pyqentangle
Quantum Entanglement in Python
Stars: ✭ 16 (+0%)
Mutual labels:  numerical-methods
GurobiLink
Wolfram Language interface to the Gurobi numerical optimization library
Stars: ✭ 16 (+0%)
Mutual labels:  numerical-methods
spfpm
Package for performing fixed-point, arbitrary-precision arithmetic in Python.
Stars: ✭ 61 (+281.25%)
Mutual labels:  numerical-methods
geodesy-php
Geodesy PHP - Port of some known geodesic/math functions for getting distance from a known point A to a known point B given their coordinates. It also supports conversion between units of length, Polar position to Cartesian coordinates, and different Reference Datums.
Stars: ✭ 26 (+62.5%)
Mutual labels:  math-functions
SciLean
Scientific computing in Lean 4
Stars: ✭ 86 (+437.5%)
Mutual labels:  numerical-methods
FinEtools.jl
Finite Element tools in Julia
Stars: ✭ 126 (+687.5%)
Mutual labels:  numerical-methods
math
Complex special functions and common mathematical operations in JavaScript
Stars: ✭ 42 (+162.5%)
Mutual labels:  special-functions
Comp PhysChem Basic
A mini-course offered to Undergrad chemistry students
Stars: ✭ 19 (+18.75%)
Mutual labels:  numerical-methods
ELEMENTS
The C++ ELEMENTS library contains a suite of sub-libraries to support mathematical functions (elements), data representations (MATAR), and novel mesh classes (geometry and SWAGE) to support a very broad range of element types, numerical methods, and mesh connectivity data structures useful for computational physics and engineering.
Stars: ✭ 13 (-18.75%)
Mutual labels:  numerical-methods
poisson-image-blending
🎨 Web-based implementation of the poisson image blending in HTML5 Canvas / JavaScript
Stars: ✭ 22 (+37.5%)
Mutual labels:  numerical-methods
Root-Finder
Root-Finder is a header-only univariate polynomial solver, which finds/counts all real roots of any polynomial within any interval.
Stars: ✭ 30 (+87.5%)
Mutual labels:  polynomials
lubeck
High level linear algebra library for Dlang
Stars: ✭ 57 (+256.25%)
Mutual labels:  numerical-methods
AsFem
A Simple Finite Element Method program (AsFem)
Stars: ✭ 108 (+575%)
Mutual labels:  numerical-methods
SensorsAndAi
SensorAndAi is an android application which will give you the complete information about all the sensors and some basic information about artificial intelligence.This application will tell you about the use and implementation of the sensor and artificial intelligence.This app will show you how sensor and artificial intelligence is used in any an…
Stars: ✭ 29 (+81.25%)
Mutual labels:  special-functions
herbie
Optimize floating-point expressions for accuracy
Stars: ✭ 614 (+3737.5%)
Mutual labels:  numerical-methods
numerical-methods-python
Numerical methods implementation in Python.
Stars: ✭ 65 (+306.25%)
Mutual labels:  numerical-methods
pydens
PyDEns is a framework for solving Ordinary and Partial Differential Equations (ODEs & PDEs) using neural networks
Stars: ✭ 201 (+1156.25%)
Mutual labels:  numerical-methods
mole
Mimetic Operators Library Enhanced
Stars: ✭ 15 (-6.25%)
Mutual labels:  numerical-methods
nmmn
Miscellaneous methods for: astronomy, dealing with arrays, statistical distributions, computing goodness-of-fit, numerical simulations and much more
Stars: ✭ 16 (+0%)
Mutual labels:  numerical-methods

TR29124 Mathematical Special Functions in C++

Codacy Badge Build Status Coverage Status

This repository contains work toward [IS 29124 - Extensions to the C++ Library to Support Mathematical Special Functions] (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2010/n3060.pdf) hence the awkward name.

This library also contains work towards follow-up published proposals for new special functions: [A proposal to add special mathematical functions according to the ISO/IEC 80000-2:2009 standard, Vincent Reverdy] (http://open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3494.pdf)

[A Proposal to add Mathematical Functions for Statistics to the C++ Standard Library, Paul A Bristow] (http://open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1668.pdf)

[A proposal to add sincos to the standard library, Paul Dreik] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0081r0.pdf)

This work began as a project to add math extensions to libstdc++. At this point I am abandoning that idea in favor of a general math library. Those still wishing to look at the libstdc++ support should check out the last_libstdc++_support tag. I may create a branch later.

This library has abandoned the 'f' and 'l' suffixed functioned of C++17. These were for C 'compatibility' which never came. They were a source of noise and bitrot. I briefly thought about retaining them for functions of integer argument that can't figure out a floating point type by ADL. But I chose not to do thet either.

This library and sub-libraries are experiencing a lot of churn right now but in the end I expect a set of smaller components that are more independent. It does seem to be in the nature of this work that some interdependencies creep in. In particular, the functions in these libraries are now in namespace emsr and in include/emsr.

The functions in IS 29124 have been accepted into C++17. See Section 2.9.5 Mathematical special functions [sf.cmath] in a recent draft.

In addition to the special functions in C++17, this library adds several extensions:

  • Hypergeometric functions
  • Carlson elliptic functions
  • Jacobi elliptic functions, amplitude, and nome
  • Polylogarithm functions
  • Airy functions
  • Hankel functions
  • Statistical distribution functions

Some capabilities have been migrated into separate subprojects:

  • Quadrature rules
  • Polynomial classes and solvers
  • Sequence trasnformations
  • Continued fractions
  • Chebyshev fitting
  • Math constants
  • Differentiation

I strive for type genericity. I want C++ numerics to follow the containers + algorithms by having numeric algorithms that will work for any type for which numeric_limits, and the basic math functions are available. These functions have been tested with float, dou6ble, long double, and __float128. Some have been tested with mpreal and efforts are underway to allow full multiprecision usage.

Documentation

Check out the API documentation.

Building

Because there are several submodules, you'll want to clone like this:

  • git clone --recurse-submodules https://github.com/emsr/tr29124_test.git
    If you forget, as I often do, and do a normal clone then go into the main project directory and update the submodules:
  • git submodule update --init --recursive
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].