LIBM(3lua) LOCAL LIBM(3lua)
NAME
libm -- Lua interface to the math(3) library
SYNOPSIS
local lm = require 'libm'
DESCRIPTION
The libm Lua binding provides access to the math(3) library. If these functions are given an argument outside the domain of the function the return value will be NaN. This can be checked with lm.isnan(). Many of these functions have native equivalents in the Lua math library. Others, like round(3), cbrt(3), and the hyperbolic trigonometry func- tions, are not provided without an auxiliary module. The functions that are redundant are provided for completeness. Since these functions map quite closely to the functions in the math library, detailed information about their behavior can be found in the man pages for each function in section 3 of the manual. List of Functions Name Man page Description lm.acos acos(3) inverse trigonometric function lm.acosh acosh(3) inverse hyperbolic function lm.asin asin(3) inverse trigonometric function lm.asinh asinh(3) inverse hyperbolic function lm.atan atan(3) inverse trigonometric function lm.atanh atanh(3) inverse hyperbolic function lm.atan2 atan2(3) inverse trigonometric function lm.cbrt sqrt(3) cube root lm.ceil ceil(3) integer no less than lm.copysign copysign(3) copy sign bit lm.cos cos(3) trigonometric function lm.cosh cosh(3) hyperbolic function lm.erf erf(3) error function lm.erfc erf(3) complementary error function lm.exp exp(3) base e exponential lm.exp2 exp2(3) base 2 exponential lm.expm1 expm1(3) exp(x)-1 lm.fabs fabs(3) absolute value lm.fdim erf(3) positive difference lm.finite finite(3) test for finity lm.floor floor(3) integer no greater than lm.fma fmod(3) fused multiply-add lm.fmax fmax(3) maximum lm.fmin fmin(3) minimum lm.fmod fmod(3) remainder lm.hypot hypot(3) Euclidean distance lm.ilogb ilogb(3) exponent extraction lm.isinf isinf(3) test for infinity lm.isnan isnan(3) test for not-a-number lm.j0 j0(3) Bessel function lm.j1 j0(3) Bessel function lm.jn j0(3) Bessel function lm.lgamma lgamma(3) log gamma function lm.log log(3) natural logarithm lm.log10 log(3) logarithm to base 10 lm.log1p log(3) log(1+x) lm.nan nan(3) return quiet NaN lm.nextafter nextafter(3) next representable number lm.pow pow(3) exponential x**y lm.remainder remainder(3) remainder lm.rint rint(3) round to nearest integer lm.scalbn scalbn(3) exponent adjustment lm.sin sin(3) trigonometric function lm.sinh sinh(3) hyperbolic function lm.sqrt sqrt(3) square root lm.tan tan(3) trigonometric function lm.tanh tanh(3) hyperbolic function lm.trunc trunc(3) nearest integral value lm.y0 j0(3) Bessel function lm.y1 j0(3) Bessel function lm.yn j0(3) Bessel function List of Defined Values Name Value Description lm.M_E 2.7182818284590452354 e lm.M_LOG2E 1.4426950408889634074 log 2e lm.M_LOG10E 0.43429448190325182765 log 10e lm.M_LN2 0.69314718055994530942 log e2 lm.M_LN10 2.30258509299404568402 log e10 lm.M_PI 3.14159265358979323846 pi lm.M_PI_2 1.57079632679489661923 pi/2 lm.M_PI_4 0.78539816339744830962 pi/4 lm.M_1_PI 0.31830988618379067154 1/pi lm.M_2_PI 0.63661977236758134308 2/pi lm.M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi) lm.M_SQRT2 1.41421356237309504880 sqrt(2) lm.M_SQRT1_2 0.70710678118654752440 1/sqrt(2)
NOTES
The functions finite, isfinite, isinf, and isnan return integers in the math library, the results are converted to lua boolean values by this interface.
BUGS
The single precision float, and long double data types, implemented in several of the libm routines, are not supported by this interface. The math library has a long development history, but if a bug exists there, it will certainly exist in this interface as well.
HISTORY
A libm Lua binding appeared in NetBSD 9.4.
AUTHORS
The libm Lua binding was written by Phillip Rulon. NetBSD 10.1 November 2, 2022 NetBSD 10.1
Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.