## Usage
```javascript
var special = require( '@stdlib/math/base/special' );
```
#### special
Standard library base special math functions.
```javascript
var fcns = special;
// returns {...}
```
### Exponential & Logarithmic Functions
- [`exp( x )`][@stdlib/math/base/special/exp]: natural exponential function.
- [`exp10( x )`][@stdlib/math/base/special/exp10]: base `10` exponential function.
- [`exp2( x )`][@stdlib/math/base/special/exp2]: base `2` exponential function.
- [`expit( x )`][@stdlib/math/base/special/expit]: compute the standard logistic function.
- [`expm1( x )`][@stdlib/math/base/special/expm1]: compute `exp(x) - 1`.
- [`expm1rel( x )`][@stdlib/math/base/special/expm1rel]: compute the relative error exponential.
- [`ln( x )`][@stdlib/math/base/special/ln]: evaluate the natural logarithm.
- [`log( x, b )`][@stdlib/math/base/special/log]: compute the base `b` logarithm.
- [`log10( x )`][@stdlib/math/base/special/log10]: evaluate the common logarithm.
- [`log1mexp( x )`][@stdlib/math/base/special/log1mexp]: evaluates the natural logarithm of `1-exp(-|x|)`.
- [`log1p( x )`][@stdlib/math/base/special/log1p]: evaluate the natural logarithm of `1+x`.
- [`log1pexp( x )`][@stdlib/math/base/special/log1pexp]: evaluates the natural logarithm of `1+exp(x)`.
- [`log2( x )`][@stdlib/math/base/special/log2]: evaluate the binary logarithm.
- [`logaddexp( x, y )`][@stdlib/math/base/special/logaddexp]: evaluates the natural logarithm of `exp(x) + exp(y)`.
- [`pow( base, exponent )`][@stdlib/math/base/special/pow]: exponential function.
- [`powm1( b, x )`][@stdlib/math/base/special/powm1]: evaluate `bˣ - 1`.
- [`xlog1py( x, y )`][@stdlib/math/base/special/xlog1py]: compute `x * ln(y+1)` so that the result is `0` if `x = 0`.
- [`xlogy( x, y )`][@stdlib/math/base/special/xlogy]: compute `x * ln(y)` so that the result is `0` if `x = 0`.
### Trigonometric Functions
- [`acos( x )`][@stdlib/math/base/special/acos]: compute the arccosine of a number.
- [`acosh( x )`][@stdlib/math/base/special/acosh]: compute the hyperbolic arccosine of a number.
- [`acovercos( x )`][@stdlib/math/base/special/acovercos]: compute the inverse coversed cosine.
- [`acoversin( x )`][@stdlib/math/base/special/acoversin]: compute the inverse coversed sine.
- [`ahavercos( x )`][@stdlib/math/base/special/ahavercos]: compute the inverse half-value versed cosine.
- [`ahaversin( x )`][@stdlib/math/base/special/ahaversin]: compute the inverse half-value versed sine.
- [`asin( x )`][@stdlib/math/base/special/asin]: compute the arcsine of a number.
- [`asinh( x )`][@stdlib/math/base/special/asinh]: compute the hyperbolic arcsine of a number.
- [`atan( x )`][@stdlib/math/base/special/atan]: compute the arctangent of a number.
- [`atan2( y, x )`][@stdlib/math/base/special/atan2]: compute the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)`.
- [`atanh( x )`][@stdlib/math/base/special/atanh]: compute the hyperbolic arctangent of a number.
- [`avercos( x )`][@stdlib/math/base/special/avercos]: compute the inverse versed cosine.
- [`aversin( x )`][@stdlib/math/base/special/aversin]: compute the inverse versed sine.
- [`cos( x )`][@stdlib/math/base/special/cos]: compute the cosine of a number.
- [`cosh( x )`][@stdlib/math/base/special/cosh]: compute the hyperbolic cosine of a number.
- [`cosm1( x )`][@stdlib/math/base/special/cosm1]: compute `cos(x) - 1`.
- [`cospi( x )`][@stdlib/math/base/special/cospi]: compute the cosine of a number times π.
- [`covercos( x )`][@stdlib/math/base/special/covercos]: compute the coversed cosine.
- [`coversin( x )`][@stdlib/math/base/special/coversin]: compute the coversed sine.
- [`hacovercos( x )`][@stdlib/math/base/special/hacovercos]: compute the half-value coversed cosine.
- [`hacoversin( x )`][@stdlib/math/base/special/hacoversin]: compute the half-value coversed sine.
- [`havercos( x )`][@stdlib/math/base/special/havercos]: compute the half-value versed cosine.
- [`haversin( x )`][@stdlib/math/base/special/haversin]: compute the half-value versed sine.
- [`risingFactorial( x, n )`][@stdlib/math/base/special/rising-factorial]: compute the rising factorial.
- [`sin( x )`][@stdlib/math/base/special/sin]: compute the sine of a number.
- [`sinc( x )`][@stdlib/math/base/special/sinc]: compute the cardinal sine of a number.
- [`sincos( [out,] x )`][@stdlib/math/base/special/sincos]: simultaneously compute the sine and cosine of a number.
- [`sincospi( [out,] x )`][@stdlib/math/base/special/sincospi]: simultaneously compute the sine and cosine of a number times π.
- [`sinh( x )`][@stdlib/math/base/special/sinh]: compute the hyperbolic sine of a number.
- [`sinpi( x )`][@stdlib/math/base/special/sinpi]: compute the sine of a number times π.
- [`tan( x )`][@stdlib/math/base/special/tan]: evaluate the tangent of a number.
- [`tanh( x )`][@stdlib/math/base/special/tanh]: compute the hyperbolic tangent of a number.
- [`vercos( x )`][@stdlib/math/base/special/vercos]: compute the versed cosine.
- [`versin( x )`][@stdlib/math/base/special/versin]: compute the versed sine.
### Bessel Functions
- [`besselj0( x )`][@stdlib/math/base/special/besselj0]: compute the Bessel function of the first kind of order zero.
- [`besselj1( x )`][@stdlib/math/base/special/besselj1]: compute the Bessel function of the first kind of order one.
- [`bessely0( x )`][@stdlib/math/base/special/bessely0]: compute the Bessel function of the second kind of order zero.
- [`bessely1( x )`][@stdlib/math/base/special/bessely1]: compute the Bessel function of the second kind of order one.
### Absolute Value and Rounding Functions
- [`abs( x )`][@stdlib/math/base/special/abs]: compute the absolute value of a double-precision floating-point number.
- [`abs2( x )`][@stdlib/math/base/special/abs2]: compute the squared absolute value of a double-precision floating-point number.
- [`abs2f( x )`][@stdlib/math/base/special/abs2f]: compute the squared absolute value of a single-precision floating-point number.
- [`absf( x )`][@stdlib/math/base/special/absf]: compute the absolute value of a single-precision floating-point number.
- [`cabs( re, im )`][@stdlib/math/base/special/cabs]: compute an absolute value of a complex number.
- [`cabs2( re, im )`][@stdlib/math/base/special/cabs2]: compute the squared absolute value of a complex number.
- [`cceil( [out,] re, im )`][@stdlib/math/base/special/cceil]: round a complex number toward positive infinity.
- [`cceiln( [out,] re, im, n )`][@stdlib/math/base/special/cceiln]: round a complex number to the nearest multiple of `10^n` toward positive infinity.
- [`ceil( x )`][@stdlib/math/base/special/ceil]: round a double-precision floating-point number toward positive infinity.
- [`ceil10( x )`][@stdlib/math/base/special/ceil10]: round a numeric value to the nearest power of 10 toward positive infinity.
- [`ceil2( x )`][@stdlib/math/base/special/ceil2]: round a numeric value to the nearest power of two toward positive infinity.
- [`ceilb( x, n, b )`][@stdlib/math/base/special/ceilb]: round a numeric value to the nearest multiple of b^n toward positive infinity.
- [`ceilf( x )`][@stdlib/math/base/special/ceilf]: round a single-precision floating-point number toward positive infinity.
- [`ceiln( x, n )`][@stdlib/math/base/special/ceiln]: round a numeric value to the nearest multiple of 10^n toward positive infinity.
- [`ceilsd( x, n[, b] )`][@stdlib/math/base/special/ceilsd]: round a numeric value to the nearest number toward positive infinity with N significant figures.
- [`cfloor( [out,] re, im )`][@stdlib/math/base/special/cfloor]: round a complex number toward negative infinity.
- [`cfloorn( [out,] re, im, n )`][@stdlib/math/base/special/cfloorn]: round a complex number to the nearest multiple of `10^n` toward negative infinity.
- [`clamp( v, min, max )`][@stdlib/math/base/special/clamp]: restrict a double-precision floating-point number to a specified range.
- [`clampf( v, min, max )`][@stdlib/math/base/special/clampf]: restrict a single-precision floating-point number to a specified range.
- [`cround( [out,] re, im )`][@stdlib/math/base/special/cround]: round a complex number to the nearest integer.
- [`croundn( [out,] re, im, n )`][@stdlib/math/base/special/croundn]: round a complex number to the nearest multiple of `10^n`.
- [`csignum( [out,] re, im )`][@stdlib/math/base/special/csignum]: evaluate the signum function of a complex number.
- [`floor( x )`][@stdlib/math/base/special/floor]: round a double-precision floating-point number toward negative infinity.
- [`floor10( x )`][@stdlib/math/base/special/floor10]: round a numeric value to the nearest power of 10 toward negative infinity.
- [`floor2( x )`][@stdlib/math/base/special/floor2]: round a numeric value to the nearest power of two toward negative infinity.
- [`floorb( x, n, b )`][@stdlib/math/base/special/floorb]: round a numeric value to the nearest multiple of b^n toward negative infinity.
- [`floorf( x )`][@stdlib/math/base/special/floorf]: round a single-precision floating-point numeric value toward negative infinity.
- [`floorn( x, n )`][@stdlib/math/base/special/floorn]: round a numeric value to the nearest multiple of 10^n toward negative infinity.
- [`floorsd( x, n[, b] )`][@stdlib/math/base/special/floorsd]: round a numeric value to the nearest number toward negative infinity with N significant figures.
- [`labs( x )`][@stdlib/math/base/special/labs]: compute an absolute value of a signed 32-bit integer.
- [`maxabs( [x[, y[, ...args]]] )`][@stdlib/math/base/special/maxabs]: return the maximum absolute value.
- [`minabs( [x[, y[, ...args]]] )`][@stdlib/math/base/special/minabs]: return the minimum absolute value.
- [`minmaxabs( [out,] x[, y[, ...args]] )`][@stdlib/math/base/special/minmaxabs]: return the minimum and maximum absolute values.
- [`round( x )`][@stdlib/math/base/special/round]: round a numeric value to the nearest integer.
- [`round10( x )`][@stdlib/math/base/special/round10]: round a numeric value to the nearest power of 10 on a linear scale.
- [`round2( x )`][@stdlib/math/base/special/round2]: round a numeric value to the nearest power of two on a linear scale.
- [`roundb( x, n, b )`][@stdlib/math/base/special/roundb]: round a numeric value to the nearest multiple of b^n on a linear scale.
- [`roundn( x, n )`][@stdlib/math/base/special/roundn]: round a numeric value to the nearest multiple of 10^n.
- [`roundsd( x, n[, b] )`][@stdlib/math/base/special/roundsd]: round a numeric value to the nearest number with `n` significant figures.
- [`signum( x )`][@stdlib/math/base/special/signum]: signum function.
- [`signumf( x )`][@stdlib/math/base/special/signumf]: signum function.
- [`trunc( x )`][@stdlib/math/base/special/trunc]: round a double-precision floating-point number toward zero.
- [`trunc10( x )`][@stdlib/math/base/special/trunc10]: round a numeric value to the nearest power of 10 toward zero.
- [`trunc2( x )`][@stdlib/math/base/special/trunc2]: round a numeric value to the nearest power of two toward zero.
- [`truncb( x, n, b )`][@stdlib/math/base/special/truncb]: round a numeric value to the nearest multiple of b^n toward zero.
- [`truncf( x )`][@stdlib/math/base/special/truncf]: round a single-precision floating-point number toward zero.
- [`truncn( x, n )`][@stdlib/math/base/special/truncn]: round a numeric value to the nearest multiple of 10^n toward zero.
- [`truncsd( x, n[, b] )`][@stdlib/math/base/special/truncsd]: round a numeric value to the nearest number toward zero with `n` significant figures.
### Other Special Functions
- [`acot( x )`][@stdlib/math/base/special/acot]: compute the inverse cotangent of a number.
- [`acoth( x )`][@stdlib/math/base/special/acoth]: compute the inverse hyperbolic cotangent of a number.
- [`bernoulli( n )`][@stdlib/math/base/special/bernoulli]: compute the nth Bernoulli number.
- [`beta( x, y )`][@stdlib/math/base/special/beta]: beta function.
- [`betainc( x, a, b[, regularized[, upper]] )`][@stdlib/math/base/special/betainc]: incomplete beta function.
- [`betaincinv( p, a, b[, upper] )`][@stdlib/math/base/special/betaincinv]: inverse of the incomplete beta function.
- [`betaln( x, y )`][@stdlib/math/base/special/betaln]: natural logarithm of the beta function.
- [`binet( x )`][@stdlib/math/base/special/binet]: evaluate Binet's formula extended to real numbers.
- [`binomcoef( n, k )`][@stdlib/math/base/special/binomcoef]: compute the binomial coefficient.
- [`binomcoefln( n, k )`][@stdlib/math/base/special/binomcoefln]: compute the natural logarithm of the binomial coefficient.
- [`boxcox( x, lambda )`][@stdlib/math/base/special/boxcox]: compute a one-parameter Box-Cox transformation.
- [`boxcox1p( x, lambda )`][@stdlib/math/base/special/boxcox1p]: compute a one-parameter Box-Cox transformation of `1+x`.
- [`boxcox1pinv( y, lambda )`][@stdlib/math/base/special/boxcox1pinv]: compute the inverse of a one-parameter Box-Cox transformation for `1+x`.
- [`boxcoxinv( y, lambda )`][@stdlib/math/base/special/boxcoxinv]: compute the inverse of a one-parameter Box-Cox transformation.
- [`cbrt( x )`][@stdlib/math/base/special/cbrt]: compute the cube root of a double-precision floating-point number.
- [`cbrtf( x )`][@stdlib/math/base/special/cbrtf]: compute the cube root of a single-precision floating-point number.
- [`ccis( [out,] re, im )`][@stdlib/math/base/special/ccis]: compute the cis function of a complex number.
- [`cexp( [out,] re, im )`][@stdlib/math/base/special/cexp]: compute the exponential function of a complex number.
- [`cflipsign( [out,] re, im, y )`][@stdlib/math/base/special/cflipsign]: return a complex number with the same magnitude as `z` and the sign of `y*z`.
- [`cinv( [out,] re1, im1 )`][@stdlib/math/base/special/cinv]: compute the inverse of a complex number.
- [`copysign( x, y )`][@stdlib/math/base/special/copysign]: return a double-precision floating-point number with the magnitude of `x` and the sign of `y`.
- [`cphase( re, im )`][@stdlib/math/base/special/cphase]: compute the argument of a complex number in radians.
- [`cpolar( [out,] re, im )`][@stdlib/math/base/special/cpolar]: compute the absolute value and phase of a complex number.
- [`deg2rad( x )`][@stdlib/math/base/special/deg2rad]: convert an angle from degrees to radians.
- [`deg2radf( x )`][@stdlib/math/base/special/deg2radf]: convert an angle from degrees to radians (single-precision).
- [`digamma( x )`][@stdlib/math/base/special/digamma]: digamma function.
- [`diracDelta( x )`][@stdlib/math/base/special/dirac-delta]: evaluate the Dirac delta function.
- [`eta( s )`][@stdlib/math/base/special/dirichlet-eta]: dirichlet eta function.
- [`ellipe( m )`][@stdlib/math/base/special/ellipe]: compute the complete elliptic integral of the second kind.
- [`ellipk( m )`][@stdlib/math/base/special/ellipk]: compute the complete elliptic integral of the first kind.
- [`erf( x )`][@stdlib/math/base/special/erf]: error function.
- [`erfc( x )`][@stdlib/math/base/special/erfc]: complementary error function.
- [`erfcinv( x )`][@stdlib/math/base/special/erfcinv]: inverse complementary error function.
- [`erfinv( x )`][@stdlib/math/base/special/erfinv]: inverse error function.
- [`factorial( x )`][@stdlib/math/base/special/factorial]: factorial function.
- [`factorialln( x )`][@stdlib/math/base/special/factorialln]: natural logarithm of the factorial function.
- [`fallingFactorial( x, n )`][@stdlib/math/base/special/falling-factorial]: compute the falling factorial.
- [`fibonacciIndex( F )`][@stdlib/math/base/special/fibonacci-index]: compute the Fibonacci number index.
- [`fibonacci( n )`][@stdlib/math/base/special/fibonacci]: compute the nth Fibonacci number.
- [`flipsign( x, y )`][@stdlib/math/base/special/flipsign]: return a double-precision floating-point number with the magnitude of `x` and the sign of `x*y`.
- [`fresnel( [out,] x )`][@stdlib/math/base/special/fresnel]: compute the Fresnel integrals S(x) and C(x).
- [`fresnelc( x )`][@stdlib/math/base/special/fresnelc]: compute the Fresnel integral C(x).
- [`fresnels( x )`][@stdlib/math/base/special/fresnels]: compute the Fresnel integral S(x).
- [`frexp( [out,] x )`][@stdlib/math/base/special/frexp]: split a double-precision floating-point number into a normalized fraction and an integer power of two.
- [`gamma( x )`][@stdlib/math/base/special/gamma]: gamma function.
- [`gamma1pm1( x )`][@stdlib/math/base/special/gamma1pm1]: compute `gamma(x+1) - 1`.
- [`gammainc( x, s[, regularized[, upper ]] )`][@stdlib/math/base/special/gammainc]: incomplete gamma function.
- [`gammaincinv( p, s[, upper ] )`][@stdlib/math/base/special/gammaincinv]: inverse of incomplete gamma function.
- [`gammaln( x )`][@stdlib/math/base/special/gammaln]: natural logarithm of the gamma function.
- [`gcd( a, b )`][@stdlib/math/base/special/gcd]: compute the greatest common divisor (gcd).
- [`heaviside( x[, continuity] )`][@stdlib/math/base/special/heaviside]: evaluate the Heaviside function.
- [`hypot( x, y )`][@stdlib/math/base/special/hypot]: compute the hypotenuse avoiding overflow and underflow.
- [`hypotf( x, y )`][@stdlib/math/base/special/hypotf]: compute the hypotenuse avoiding overflow and underflow (single-precision).
- [`identity( x )`][@stdlib/math/base/special/identity]: evaluate the identity function of a double-precision floating-point number.
- [`identityf( x )`][@stdlib/math/base/special/identityf]: evaluate the identity function of a single-precision floating-point number.
- [`imul( a, b )`][@stdlib/math/base/special/imul]: perform C-like multiplication of two signed 32-bit integers.
- [`imuldw( [out,] a, b )`][@stdlib/math/base/special/imuldw]: compute the double word product of two signed 32-bit integers.
- [`inv( x )`][@stdlib/math/base/special/inv]: compute the multiplicative inverse of a double-precision floating-point number.
- [`invf( x )`][@stdlib/math/base/special/invf]: compute the multiplicative inverse of a single-precision floating-point number.
- [`kroneckerDelta( i, j )`][@stdlib/math/base/special/kronecker-delta]: evaluate the Kronecker delta.
- [`kroneckerDeltaf( i, j )`][@stdlib/math/base/special/kronecker-deltaf]: evaluate the Kronecker delta (single-precision).
- [`lcm( a, b )`][@stdlib/math/base/special/lcm]: compute the least common multiple (lcm).
- [`ldexp( frac, exp )`][@stdlib/math/base/special/ldexp]: multiply a double-precision floating-point number by an integer power of two.
- [`lucas( n )`][@stdlib/math/base/special/lucas]: compute the nth Lucas number.
- [`max( [x[, y[, ...args]]] )`][@stdlib/math/base/special/max]: return the maximum value.
- [`min( [x[, y[, ...args]]] )`][@stdlib/math/base/special/min]: return the minimum value.
- [`minmax( [out,] x[, y[, ...args]] )`][@stdlib/math/base/special/minmax]: return the minimum and maximum values.
- [`modf( [out,] x )`][@stdlib/math/base/special/modf]: decompose a double-precision floating-point number into integral and fractional parts.
- [`negafibonacci( n )`][@stdlib/math/base/special/negafibonacci]: compute the nth negaFibonacci number.
- [`negalucas( n )`][@stdlib/math/base/special/negalucas]: compute the nth negaLucas number.
- [`nonfibonacci( n )`][@stdlib/math/base/special/nonfibonacci]: compute the nth non-Fibonacci number.
- [`pdiff( x, y )`][@stdlib/math/base/special/pdiff]: return the positive difference between `x` and `y`.
- [`pdifff( x, y )`][@stdlib/math/base/special/pdifff]: return the positive difference between `x` and `y`.
- [`polygamma( n, x )`][@stdlib/math/base/special/polygamma]: polygamma function.
- [`rad2deg( x )`][@stdlib/math/base/special/rad2deg]: convert an angle from radians to degrees.
- [`ramp( x )`][@stdlib/math/base/special/ramp]: evaluate the ramp function.
- [`rampf( x )`][@stdlib/math/base/special/rampf]: evaluate the ramp function.
- [`zeta( s )`][@stdlib/math/base/special/riemann-zeta]: riemann zeta function.
- [`rsqrt( x )`][@stdlib/math/base/special/rsqrt]: compute the reciprocal of the principal square root of a double-precision floating-point number.
- [`rsqrtf( x )`][@stdlib/math/base/special/rsqrtf]: compute the reciprocal of the principal square root of a single-precision floating-point number.
- [`sici( [out,] x )`][@stdlib/math/base/special/sici]: compute the sine and cosine integrals.
- [`spence( x )`][@stdlib/math/base/special/spence]: spence’s function, also known as the dilogarithm.
- [`sqrt( x )`][@stdlib/math/base/special/sqrt]: compute the principal square root of a double-precision floating-point number.
- [`sqrt1pm1( x )`][@stdlib/math/base/special/sqrt1pm1]: compute `sqrt( 1 + x ) - 1`.
- [`sqrtf( x )`][@stdlib/math/base/special/sqrtf]: compute the principal square root of a single-precision floating-point number.
- [`tribonacci( n )`][@stdlib/math/base/special/tribonacci]: compute the nth Tribonacci number.
- [`trigamma( x )`][@stdlib/math/base/special/trigamma]: trigamma function.
- [`uimul( a, b )`][@stdlib/math/base/special/uimul]: perform C-like multiplication of two unsigned 32-bit integers.
- [`uimuldw( [out,] a, b )`][@stdlib/math/base/special/uimuldw]: compute the double word product of two unsigned 32-bit integers.
- [`wrap( v, min, max )`][@stdlib/math/base/special/wrap]: wrap a value on the half-open interval `[min,max)`.
Fast algorithms of various special functions, which trade accuracy for increased speed, are available in the following sub-namespace:
- [`fast`][@stdlib/math/base/special/fast]: standard library fast math special functions.
Finally, the namespace exports the following kernel functions, which are mainly used internally. Beware that they may only be applicable for input values inside a certain number range and/or may not work as expected if not all arguments satisfy the parameter requirements.
- [`kernelBetainc( x, a, b, regularized, upper )`][@stdlib/math/base/special/kernel-betainc]: incomplete beta function and its first derivative.
- [`kernelBetaincinv( a, b, p, q )`][@stdlib/math/base/special/kernel-betaincinv]: inverse of the lower incomplete beta function.
- [`kernelCos( x, y )`][@stdlib/math/base/special/kernel-cos]: compute the cosine of a number on `[-π/4, π/4]`.
- [`kernelSin( x, y )`][@stdlib/math/base/special/kernel-sin]: compute the sine of a number on `[-π/4, π/4]`.
- [`kernelTan( x, y, k )`][@stdlib/math/base/special/kernel-tan]: compute the tangent of a number on `[-π/4, π/4]`.
- [`rempio2( x, y )`][@stdlib/math/base/special/rempio2]: compute `x - nπ/2 = r`.