Bibliothèque math

La bibliothèque math fournit les fonctions et constantes mathématiques usuelles. Sauf mention contraire, les fonctions trigonométriques travaillent en radians et retournent un flottant.

Vue d'ensemble

Membre Description
math.pi La constante π
math.huge La valeur flottante infinie (+∞)
math.maxinteger Le plus grand entier représentable
math.mininteger Le plus petit entier représentable
math.abs(x) Valeur absolue
math.acos(x) Arc cosinus (radians)
math.asin(x) Arc sinus (radians)
math.atan(y [, x]) Arc tangente de y/x (radians), signes pris en compte
math.ceil(x) Arrondi à l'entier supérieur
math.cos(x) Cosinus
math.deg(x) Convertit des radians en degrés
math.exp(x) e^x
math.floor(x) Arrondi à l'entier inférieur
math.fmod(x, y) Reste de la division de x par y
math.log(x [, base]) Logarithme de x (népérien par défaut)
math.max(x, ···) Maximum de ses arguments
math.min(x, ···) Minimum de ses arguments
math.modf(x) Sépare partie entière et partie fractionnaire
math.rad(x) Convertit des degrés en radians
math.random([m [, n]]) Nombre pseudo-aléatoire
math.randomseed(x) Réinitialise le générateur pseudo-aléatoire
math.sin(x) Sinus
math.sqrt(x) Racine carrée
math.tan(x) Tangente
math.tointeger(x) Convertit en entier si possible
math.type(x) "integer", "float" ou nil
math.ult(m, n) Compare deux entiers comme non signés

Constantes

math.abs(x)

Retourne la valeur absolue de x. Préserve le type numérique : un entier en entrée donne un entier en sortie, un flottant donne un flottant.

math.ceil(x) / math.floor(x)

ceil arrondit x vers le plus petit entier supérieur ou égal ; floor vers le plus grand entier inférieur ou égal.

math.fmod(x, y)

Retourne le reste de la division de x par y. Quand x et y sont tous deux des entiers, le calcul se fait en arithmétique entière (reste de signe identique à x, comme l'opérateur % du

  1. ; une erreur est levée si y vaut 0. Sinon, le calcul se fait en flottant.

math.log(x [, base])

Sans base, retourne le logarithme népérien de x. Avec base, retourne le logarithme de x dans cette base (math.log(x, 10) utilise un calcul dédié à la base 10, plus précis qu'un calcul générique).

math.max(x, ···) / math.min(x, ···)

Retournent respectivement le maximum et le minimum parmi tous leurs arguments (comparés avec les opérateurs relationnels habituels — au moins un argument est requis). La valeur retournée conserve le type (entier/flottant) de l'argument gagnant.

print(math.max(3, 7, 2))     --> 7
print(math.min(3, 7, 2))     --> 2

math.modf(x)

Retourne deux valeurs : la partie entière de x (arrondie vers zéro) et sa partie fractionnaire. Pour un x déjà entier, retourne x, 0.0.

print(math.modf(3.75))    --> 3   0.75
print(math.modf(-3.75))   --> -3   -0.75

math.random([m [, n]])

Retourne un nombre pseudo-aléatoire :

Appeler avec plus de deux arguments est une erreur.

math.randomseed(x)

Réinitialise le générateur pseudo-aléatoire utilisé par math.random avec la graine x (entier).

math.tointeger(x)

Retourne x converti en entier si cette conversion est exacte (sans perte), sinon retourne nil (par exemple pour un flottant non entier, ou hors de la plage représentable).

math.type(x)

Retourne "integer" ou "float" selon le sous-type numérique de x, ou nil si x n'est pas un nombre — utile pour distinguer 1 (entier) de 1.0 (flottant), qui sont numériquement égaux mais de représentations différentes.

print(math.type(1))     --> integer
print(math.type(1.0))   --> float
print(math.type("1"))   --> nil

math.ult(m, n)

Retourne true si m < n lorsque les deux entiers sont comparés comme des entiers non signés (utile près des bornes de math.mininteger/math.maxinteger, où la comparaison signée usuelle donnerait un résultat différent).

Fonctions trigonométriques et exponentielles

math.sin, math.cos, math.tan, math.asin, math.acos opèrent en radians. math.atan(y [, x]) retourne l'arc tangente de y/x, x valant 1 par défaut, en utilisant le signe des deux arguments pour déterminer le quadrant du résultat (équivalent à atan2). math.deg/math.rad convertissent respectivement radians → degrés et degrés → radians. math.exp(x) retourne e^x ; math.sqrt(x) la racine carrée de x.