Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

Cálculo

Módulo para cálculos y procesamiento de valores numéricos.

Estas definiciones forman parte del módulo calc y no se importan por defecto.

Constantes

inf
floatDesde: siempre

Infinito (+∞) como valor.

Es el mismo valor que float.inf. Consultá la documentación correspondiente para más detalles.

pi
floatDesde: siempre

Constante de Arquímedes (𝜋).

Es la razón entre la circunferencia de un círculo y su diámetro.

ExpandirVer ejemplo
#calc.pi

tau
floatDesde: 0.8.0

La circunferencia de un círculo unitario (𝜏).

La constante 𝜏 se define por la relación 𝜏=2𝜋.

ExpandirVer ejemplo
#calc.tau \ #(2 * calc.pi)

e
floatDesde: siempre

Número de Euler (𝑒).

Es la base del logaritmo natural y de la función exponencial.

ExpandirVer ejemplo
#calc.e

Funciones

absDesde: siempreIr al código fuente

Calcula el valor absoluto de un valor numérico.

ExpandirVer ejemplo
#calc.abs(-5) \ #calc.abs(5pt - 2cm) \ #calc.abs(2fr) \ #calc.abs(decimal("-342.440"))

value
int o float o length o angle o ratio o fraction o decimal
ObligatorioPosicional
Signo de pregunta

El valor cuyo valor absoluto se calcula.

powDesde: siempreIr al código fuente

Eleva un valor a un exponente.

ExpandirVer ejemplo
#calc.pow(2, 3) \ #calc.pow(decimal("2.5"), 2)

base
int o float o decimal
ObligatorioPosicional
Signo de pregunta

La base de la potencia.

Si es un decimal, el exponente solo puede ser un entero.

exponent
int o float
ObligatorioPosicional
Signo de pregunta

El exponente de la potencia.

expDesde: 0.5.0Ir al código fuente

Eleva 𝑒 a un exponente.

ExpandirVer ejemplo
#calc.exp(1)
calc.exp(intfloat) → float

exponent
int o float
ObligatorioPosicional
Signo de pregunta

El exponente de la potencia.

sqrtDesde: siempreIr al código fuente

Calcula la raíz cuadrada de un número.

ExpandirVer ejemplo
#calc.sqrt(16) \ #calc.sqrt(2.5)
calc.sqrt(intfloat) → float

value
int o float
ObligatorioPosicional
Signo de pregunta

El número cuya raíz cuadrada se calcula. Debe ser no negativo.

rootDesde: 0.11.0Ir al código fuente

Calcula la raíz real 𝑛ésima de un número.

Si el número es negativo, 𝑛 debe ser impar.

ExpandirVer ejemplo
#calc.root(16.0, 4) \ #calc.root(27.0, 3)
calc.root() → float

radicand
float
ObligatorioPosicional
Signo de pregunta

La expresión de la que se toma la raíz.

index
int
ObligatorioPosicional
Signo de pregunta

El valor de 𝑛.

sinDesde: siempreIr al código fuente

Calcula el seno de un ángulo.

Cuando se la llama con un entero o un flotante, se interpretan como radianes.

ExpandirVer ejemplo
#calc.sin(1.5) \ #calc.sin(90deg)
calc.sin(intfloatangle) → float

angle
int o float o angle
ObligatorioPosicional
Signo de pregunta

El ángulo cuyo seno se calcula.

cosDesde: siempreIr al código fuente

Calcula el coseno de un ángulo.

Cuando se la llama con un entero o un flotante, se interpretan como radianes.

ExpandirVer ejemplo
#calc.cos(1.5) \ #calc.cos(90deg)
calc.cos(intfloatangle) → float

angle
int o float o angle
ObligatorioPosicional
Signo de pregunta

El ángulo cuyo coseno se calcula.

tanDesde: siempreIr al código fuente

Calcula la tangente de un ángulo.

Cuando se la llama con un entero o un flotante, se interpretan como radianes.

ExpandirVer ejemplo
#calc.tan(1.5) \ #calc.tan(90deg)
calc.tan(intfloatangle) → float

angle
int o float o angle
ObligatorioPosicional
Signo de pregunta

El ángulo cuya tangente se calcula.

asinDesde: siempreIr al código fuente

Calcula el arcoseno de un número.

ExpandirVer ejemplo
#calc.asin(0) \ #calc.asin(1)
calc.asin(intfloat) → angle

value
int o float
ObligatorioPosicional
Signo de pregunta

El número cuyo arcoseno se calcula. Debe estar entre −1 y 1.

acosDesde: siempreIr al código fuente

Calcula el arcocoseno de un número.

ExpandirVer ejemplo
#calc.acos(0) \ #calc.acos(1)
calc.acos(intfloat) → angle

value
int o float
ObligatorioPosicional
Signo de pregunta

El número cuyo arcocoseno se calcula. Debe estar entre −1 y 1.

atanDesde: siempreIr al código fuente

Calcula el arcotangente de un número.

ExpandirVer ejemplo
#calc.atan(0) \ #calc.atan(1)
calc.atan(intfloat) → angle

value
int o float
ObligatorioPosicional
Signo de pregunta

El número cuyo arcotangente se calcula.

atan2Desde: 0.3.0Ir al código fuente

Calcula el arcotangente de cuatro cuadrantes de una coordenada.

El arcotangente de cuatro cuadrantes de (𝑥,𝑦) se define como el argumento del número complejo 𝑥+𝑖𝑦.

Devuelve un angle entre -180deg y 180deg.

Tené en cuenta que esta función acepta (𝑥,𝑦), no (𝑦,𝑥).

ExpandirVer ejemplo
#calc.atan2(1, 1) \ #calc.atan2(-2, -3)
calc.atan2() → angle

x
int o float
ObligatorioPosicional
Signo de pregunta

La coordenada 𝑥.

y
int o float
ObligatorioPosicional
Signo de pregunta

La coordenada 𝑦.

sinhDesde: siempreIr al código fuente

Calcula el seno hiperbólico de un ángulo hiperbólico.

El seno hiperbólico de 𝑥 se define de la siguiente manera:

𝑒𝑥−𝑒−𝑥2
ExpandirVer ejemplo
#calc.sinh(0) \ #calc.sinh(1.5)
calc.sinh(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El ángulo hiperbólico cuyo seno hiperbólico se calcula.

coshDesde: siempreIr al código fuente

Calcula el coseno hiperbólico de un ángulo hiperbólico.

El coseno hiperbólico de 𝑥 se define de la siguiente manera:

𝑒𝑥+𝑒−𝑥2
ExpandirVer ejemplo
#calc.cosh(0) \ #calc.cosh(1.5)
calc.cosh(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El ángulo hiperbólico cuyo coseno hiperbólico se calcula.

tanhDesde: siempreIr al código fuente

Calcula la tangente hiperbólica de un ángulo hiperbólico.

La tangente hiperbólica de 𝑥 se define de la siguiente manera:

𝑒𝑥−𝑒−𝑥𝑒𝑥+𝑒−𝑥
ExpandirVer ejemplo
#calc.tanh(0) \ #calc.tanh(1.5)
calc.tanh(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El ángulo hiperbólico cuya tangente hiperbólica se calcula.

asinhDesde: 0.15.0Ir al código fuente

Calcula el seno hiperbólico inverso de un número.

El seno hiperbólico inverso de 𝑥 se define de la siguiente manera:

ln(𝑥+𝑥2+1)
ExpandirVer ejemplo
#calc.asinh(0) \ #calc.asinh(1)
calc.asinh(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El número cuyo seno hiperbólico inverso se calcula.

acoshDesde: 0.15.0Ir al código fuente

Calcula el coseno hiperbólico inverso de un número.

El coseno hiperbólico inverso de 𝑥 se define de la siguiente manera:

ln(𝑥+𝑥2−1)
ExpandirVer ejemplo
#calc.acosh(1) \ #calc.acosh(2.5)
calc.acosh(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El número cuyo coseno hiperbólico inverso se calcula. Debe ser mayor o igual que 1.

atanhDesde: 0.15.0Ir al código fuente

Calcula la tangente hiperbólica inversa de un número.

La tangente hiperbólica inversa de 𝑥 se define de la siguiente manera:

12ln(1+𝑥1−𝑥)
ExpandirVer ejemplo
#calc.atanh(0) \ #calc.atanh(0.5)
calc.atanh(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El número cuya tangente hiperbólica inversa se calcula. Debe estar entre −1 y 1 (exclusivos).

logDesde: siempreIr al código fuente

Calcula el logaritmo de un número.

Si no se especifica la base, el logaritmo se calcula en base diez.

ExpandirVer ejemplo
#calc.log(100)
calc.log() → float

value
int o float
ObligatorioPosicional
Signo de pregunta

El número cuyo logaritmo se calcula. Debe ser estrictamente positivo.

basePor defecto: 10.0

La base del logaritmo. No puede ser cero.

lnDesde: 0.5.0Ir al código fuente

Calcula el logaritmo natural de un número.

ExpandirVer ejemplo
#calc.ln(calc.e)
calc.ln(intfloat) → float

value
int o float
ObligatorioPosicional
Signo de pregunta

El número cuyo logaritmo se calcula. Debe ser estrictamente positivo.

erfDesde: 0.15.0Ir al código fuente

Aplica la función de error a un número.

El valor de la función de error en 𝑥 se define de la siguiente manera:

2𝜋∫0𝑥𝑒−𝑡2d𝑡
ExpandirVer ejemplo
#calc.erf(0.2)
calc.erf(float) → float

value
float
ObligatorioPosicional
Signo de pregunta

El número en el que se calcula la función de error.

factDesde: 0.3.0Ir al código fuente

Calcula el factorial de un número.

ExpandirVer ejemplo
#calc.fact(5)
calc.fact(int) → int

number
int
ObligatorioPosicional
Signo de pregunta

El número cuyo factorial se calcula. Debe ser no negativo.

permDesde: 0.3.0Ir al código fuente

Calcula una permutación.

Devuelve la 𝑘-permutación de 𝑛, o la cantidad de maneras de elegir 𝑘 elementos de un conjunto de 𝑛 teniendo en cuenta el orden, definida de la siguiente manera:

{0si𝑘>𝑛𝑛!(𝑛−𝑘)!si𝑘≤𝑛
ExpandirVer ejemplo
#calc.perm(5, 3)
calc.perm() → int

base
int
ObligatorioPosicional
Signo de pregunta

El valor de 𝑛: la cantidad de elementos entre los que se elige. Debe ser no negativo.

numbers
int
ObligatorioPosicional
Signo de pregunta

El valor de 𝑘: la cantidad de elementos que se eligen. Debe ser no negativo.

binomDesde: 0.3.0Ir al código fuente

Calcula un coeficiente binomial.

Devuelve la 𝑘-combinación de 𝑛, o la cantidad de maneras de elegir 𝑘 elementos de un conjunto de 𝑛 sin tener en cuenta el orden, definida de la siguiente manera:

{𝑛!𝑘!(𝑛−𝑘)!si0≤𝑘≤𝑛0en otro caso
ExpandirVer ejemplo
#calc.binom(10, 5)
calc.binom() → int

n
int
ObligatorioPosicional
Signo de pregunta

El valor de 𝑛: la cantidad de elementos entre los que se elige. Debe ser no negativo.

k
int
ObligatorioPosicional
Signo de pregunta

El valor de 𝑘: la cantidad de elementos que se eligen. Debe ser no negativo.

gcdDesde: 0.3.0Ir al código fuente

Calcula el máximo común divisor de dos enteros.

Producirá un error si el resultado de la división entera fuera mayor que el máximo entero con signo de 64 bits.

ExpandirVer ejemplo
#calc.gcd(7, 42)
calc.gcd() → int

a
int
ObligatorioPosicional
Signo de pregunta

El primer entero.

b
int
ObligatorioPosicional
Signo de pregunta

El segundo entero.

lcmDesde: 0.3.0Ir al código fuente

Calcula el mínimo común múltiplo de dos enteros.

ExpandirVer ejemplo
#calc.lcm(96, 13)
calc.lcm() → int

a
int
ObligatorioPosicional
Signo de pregunta

El primer entero.

b
int
ObligatorioPosicional
Signo de pregunta

El segundo entero.

floorDesde: siempreIr al código fuente

Redondea un número hacia abajo al entero más cercano.

Si el número ya es un entero, se devuelve sin cambios.

Tené en cuenta que esta función siempre devuelve un entero y producirá un error si el float o decimal resultante es mayor que el máximo entero con signo de 64 bits o menor que el mínimo de ese tipo.

ExpandirVer ejemplo
#calc.floor(500.1) #assert(calc.floor(3) == 3) #assert(calc.floor(3.14) == 3) #assert(calc.floor(decimal("-3.14")) == -4)
calc.floor(intfloatdecimal) → int

value
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El número que se redondea hacia abajo.

ceilDesde: siempreIr al código fuente

Redondea un número hacia arriba al entero más cercano.

Si el número ya es un entero, se devuelve sin cambios.

Tené en cuenta que esta función siempre devuelve un entero y producirá un error si el float o decimal resultante es mayor que el máximo entero con signo de 64 bits o menor que el mínimo de ese tipo.

ExpandirVer ejemplo
#calc.ceil(500.1) #assert(calc.ceil(3) == 3) #assert(calc.ceil(3.14) == 4) #assert(calc.ceil(decimal("-3.14")) == -3)
calc.ceil(intfloatdecimal) → int

value
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El número que se redondea hacia arriba.

truncDesde: 0.3.0Ir al código fuente

Devuelve la parte entera de un número.

Si el número ya es un entero, se devuelve sin cambios.

Tené en cuenta que esta función siempre devuelve un entero y producirá un error si el float o decimal resultante es mayor que el máximo entero con signo de 64 bits o menor que el mínimo de ese tipo.

ExpandirVer ejemplo
#calc.trunc(15.9) #assert(calc.trunc(3) == 3) #assert(calc.trunc(-3.7) == -3) #assert(calc.trunc(decimal("8493.12949582390")) == 8493)
calc.trunc(intfloatdecimal) → int

value
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El número que se trunca.

fractDesde: 0.3.0Ir al código fuente

Devuelve la parte fraccionaria de un número.

Si el número es un entero, devuelve 0.

ExpandirVer ejemplo
#calc.fract(-3.1) #assert(calc.fract(3) == 0) #assert(calc.fract(decimal("234.23949211")) == decimal("0.23949211"))

value
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El número que se trunca.

roundDesde: siempreIr al código fuente

Redondea un número al entero más cercano.

Los valores intermedios (con parte fraccionaria de un medio) se redondean alejándose de cero.

Opcionalmente, se puede especificar una cantidad de decimales. Si es negativa, su valor absoluto indicará la cantidad de dígitos enteros significativos que se eliminan antes del punto decimal.

Tené en cuenta que esta función devuelve el mismo tipo que el operando. Es decir, aplicar round a un float devuelve un float y aplicarlo a un decimal devuelve otro decimal. Podés convertir explícitamente la salida de esta función en un entero con int, pero tené en cuenta que esa conversión producirá un error si el float o decimal es mayor que el máximo entero con signo de 64 bits o menor que el entero mínimo.

Además, esta función puede producir un error si se intenta redondear más allá del entero o decimal máximo o mínimo. Si el número es un float, ese intento hará que se devuelva calc.inf o -calc.inf para el máximo y el mínimo, respectivamente.

ExpandirVer ejemplo
#calc.round(3.1415, digits: 2) #assert(calc.round(3) == 3) #assert(calc.round(3.14) == 3) #assert(calc.round(3.5) == 4.0) #assert(calc.round(3333.45, digits: -2) == 3300.0) #assert(calc.round(-48953.45, digits: -3) == -49000.0) #assert(calc.round(3333, digits: -2) == 3300) #assert(calc.round(-48953, digits: -3) == -49000) #assert(calc.round(decimal("-6.5")) == decimal("-7")) #assert(calc.round(decimal("7.123456789"), digits: 6) == decimal("7.123457")) #assert(calc.round(decimal("3333.45"), digits: -2) == decimal("3300")) #assert(calc.round(decimal("-48953.45"), digits: -3) == decimal("-49000"))

value
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El número que se redondea.

digitsPor defecto: 0

Si es positivo, la cantidad de decimales.

Si es negativo, la cantidad de dígitos enteros significativos que se deben eliminar antes del punto decimal.

clampDesde: siempreIr al código fuente

Limita un número entre un valor mínimo y uno máximo.

ExpandirVer ejemplo
#calc.clamp(5, 0, 4) #assert(calc.clamp(5, 0, 10) == 5) #assert(calc.clamp(5, 6, 10) == 6) #assert(calc.clamp(decimal("5.45"), 2, decimal("45.9")) == decimal("5.45")) #assert(calc.clamp(decimal("5.45"), decimal("6.75"), 12) == decimal("6.75"))

value
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El número que se limita.

min
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El valor mínimo inclusivo.

max
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El valor máximo inclusivo.

minDesde: siempreIr al código fuente

Determina el mínimo de una secuencia de valores.

ExpandirVer ejemplo
#calc.min(1, -3, -5, 20, 3, 6) \ #calc.min("typst", "is", "cool")
calc.min(..any) → any

values
any
ObligatorioPosicional
Signo de pregunta
Variádico
Signo de pregunta

La secuencia de valores de la que se extrae el mínimo. No debe estar vacía.

maxDesde: siempreIr al código fuente

Determina el máximo de una secuencia de valores.

ExpandirVer ejemplo
#calc.max(1, -3, -5, 20, 3, 6) \ #calc.max("typst", "is", "cool")
calc.max(..any) → any

values
any
ObligatorioPosicional
Signo de pregunta
Variádico
Signo de pregunta

La secuencia de valores de la que se extrae el máximo. No debe estar vacía.

evenDesde: siempreIr al código fuente

Determina si un entero es par.

ExpandirVer ejemplo
#calc.even(4) \ #calc.even(5) \ #range(10).filter(calc.even)
calc.even(int) → bool

value
int
ObligatorioPosicional
Signo de pregunta

El número cuya paridad se comprueba.

oddDesde: siempreIr al código fuente

Determina si un entero es impar.

ExpandirVer ejemplo
#calc.odd(4) \ #calc.odd(5) \ #range(10).filter(calc.odd)
calc.odd(int) → bool

value
int
ObligatorioPosicional
Signo de pregunta

El número cuya imparidad se comprueba.

remDesde: 0.3.0Ir al código fuente

Calcula el resto de dos números (módulo con signo).

El valor de calc.rem(x, y) siempre tiene el mismo signo que x y es menor en magnitud que y.

Puede producir un error si se le da una entrada decimal y el dividendo es demasiado pequeño en magnitud en comparación con el divisor.

ExpandirVer ejemplo
#calc.rem(7, 3) \ #calc.rem(7, -3) \ #calc.rem(-7, 3) \ #calc.rem(-7, -3) \ #calc.rem(1.75, 0.5)

dividend
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El dividendo del resto.

divisor
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El divisor del resto.

div-euclidDesde: 0.10.0Ir al código fuente

Realiza la división euclidiana de dos números.

El resultado de este cálculo es el de una división redondeada al entero n tal que el dividendo es mayor o igual que n veces el divisor.

Puede producir un error si el número resultante es mayor que el valor máximo o menor que el valor mínimo de su tipo.

ExpandirVer ejemplo
#calc.div-euclid(7, 3) \ #calc.div-euclid(7, -3) \ #calc.div-euclid(-7, 3) \ #calc.div-euclid(-7, -3) \ #calc.div-euclid(1.75, 0.5) \ #calc.div-euclid(decimal("1.75"), decimal("0.5"))

dividend
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El dividendo de la división.

divisor
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El divisor de la división.

rem-euclidDesde: 0.10.0Ir al código fuente

Calcula el menor resto no negativo de una división (módulo no negativo).

Advertencia: debido a un error de redondeo de punto flotante, el resto puede ser igual al valor absoluto del divisor si el dividendo es mucho menor en magnitud que el divisor y el dividendo es negativo. Esto solo se aplica a entradas de punto flotante.

Además, puede producir un error si se le da una entrada decimal y el dividendo es demasiado pequeño en magnitud en comparación con el divisor.

ExpandirVer ejemplo
#calc.rem-euclid(7, 3) \ #calc.rem-euclid(7, -3) \ #calc.rem-euclid(-7, 3) \ #calc.rem-euclid(-7, -3) \ #calc.rem-euclid(1.75, 0.5) \ #calc.rem-euclid(decimal("1.75"), decimal("0.5"))

dividend
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El dividendo del resto.

divisor
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El divisor del resto.

quoDesde: 0.3.0Ir al código fuente

Calcula el cociente (división con redondeo hacia abajo) de dos números.

Tené en cuenta que esta función siempre devuelve un entero y producirá un error si el número resultante es mayor que el máximo entero con signo de 64 bits o menor que el mínimo de ese tipo.

ExpandirVer ejemplo
$ "quo"(a, b) &= floor(a/b) \ "quo"(14, 5) &= #calc.quo(14, 5) \ "quo"(3.46, 0.5) &= #calc.quo(3.46, 0.5) $

dividend
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El dividendo del cociente.

divisor
int o float o decimal
ObligatorioPosicional
Signo de pregunta

El divisor del cociente.

normDesde: 0.13.0Ir al código fuente

Calcula la norma 𝑝 de una secuencia de valores.

La norma 𝑝 de 𝑥1,…,𝑥𝑛 se define de la siguiente manera:

{(∑𝑖=1𝑛|𝑥𝑖|𝑝)1/𝑝si0<𝑝<+∞max𝑖=1𝑛|𝑥𝑖|si𝑝=+∞
ExpandirVer ejemplo
#calc.norm(1, 2, -3, 0.5) \ #calc.norm(p: 3, 1, 2)
calc.norm() → float

pPor defecto: 2.0

El valor de 𝑝. Debe ser mayor que cero.

El valor por defecto 2.0 corresponde a la norma euclidiana:

∑𝑖=1𝑛𝑥𝑖2

values
float
ObligatorioPosicional
Signo de pregunta
Variádico
Signo de pregunta

La secuencia de valores cuya norma 𝑝 se calcula. Devuelve 0.0 si está vacía.