# Special Functions > Standard library base special math functions.
## 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`.
## Examples ```javascript var objectKeys = require( '@stdlib/utils/keys' ); var special = require( '@stdlib/math/base/special' ); console.log( objectKeys( special ) ); ```