Funciones matemáticas

Todas las funciones matemáticas tienen los siguientes comportamientos:

  • Muestran NULL si alguno de los parámetros de entrada es NULL.
  • Muestran NaN si alguno de los argumentos es NaN.

ABS

ABS(X)

Descripción

Calcula el valor absoluto. Muestra un error si el argumento es un número entero y el valor de resultado no se puede representar como el mismo tipo; esto sucede solo para el valor de entrada negativo más grande, que no tiene una representación positiva.

X ABS(X)
25 25
-25 25
+inf +inf
-inf +inf

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTINT64NUMERICFLOAT64

SIGN

SIGN(X)

Descripción

Muestra -1 0 o +1 para los argumentos negativos, de cero y positivos, respectivamente. Para argumentos de punto flotante, esta función no distingue entre cero positivo y negativo.

X SIGN(X)
25 +1
0 0
-25 -1
NaN NaN

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTINT64NUMERICFLOAT64

IS_INF

IS_INF(X)

Descripción

Muestra TRUE si el valor es infinito positivo o negativo.

Muestra FALSE para las entradas NUMERIC, ya que NUMERIC no puede ser INF.

X IS_INF(X)
+inf TRUE
-inf TRUE
25 FALSE

IS_NAN

IS_NAN(X)

Descripción

Muestra TRUE si el valor es NaN.

Muestra FALSE para las entradas NUMERIC, ya que NUMERIC no puede ser NaN.

X IS_NAN(X)
NaN TRUE
25 FALSE

IEEE_DIVIDE

IEEE_DIVIDE(X, Y)

Descripción

Divide X por Y; esta función nunca presenta errores. Muestra FLOAT64. A diferencia del operador de división (/), esta función no genera errores de divisiones por cero ni se desborda.

X S IEEE_DIVIDE(X, Y)
20.0 4.0 5.0
0.0 25.0 0.0
25.0 0.0 +inf
-25.0 0.0 -inf
0.0 0.0 NaN
0.0 NaN NaN
NaN 0.0 NaN
+inf +inf NaN
-inf -inf NaN

SQRT

SQRT(X)

Descripción

Calcula la raíz cuadrada de X. Genera un error si X es menor que 0.

X SQRT(X)
25.0 5.0
+inf +inf
X < 0 Error

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

POW

POW(X, Y)

Descripción

Muestra el valor de X elevado a la potencia de Y. Si el resultado se subdesborda y no es representable, entonces la función muestra un valor de cero.

X S POW(X, Y)
2.0 3.0 8.0
1.0 Cualquier valor, incluido NaN 1.0
Cualquier valor, incluido NaN 0 1.0
-1.0 +inf 1.0
-1.0 -inf 1.0
ABS(X) < 1 -inf +inf
ABS(X) > 1 -inf 0.0
ABS(X) < 1 +inf 0.0
ABS(X) > 1 +inf +inf
-inf Y < 0 0.0
-inf Y > 0 -inf si Y es un número entero impar, +inf si es lo contrario
+inf Y < 0 0
+inf Y > 0 +inf
Valor finito < 0 Sin número entero Error
0 Valor finito < 0 Error

Tipo de datos mostrados

El tipo de datos que se muestra se determina según los tipos de argumentos de la siguiente tabla.

INPUTINT64NUMERICFLOAT64
INT64FLOAT64NUMERICFLOAT64
NUMERICNUMERICNUMERICFLOAT64
FLOAT64FLOAT64FLOAT64FLOAT64

POWER

POWER(X, Y)

Descripción

Sinónimo de POW(X, Y).

EXP

EXP(X)

Descripción

Calcula e elevado a X, también llamada función exponencial natural. Si el resultado se subdesborda, esta función muestra un cero. Genera un error si el resultado se desborda.

X EXP(X)
0.0 1.0
+inf +inf
-inf 0.0

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

LN

LN(X)

Descripción

Calcula el logaritmo natural de X. Genera un error si X es menor o igual que cero.

X LN(X)
1.0 0.0
+inf +inf
X < 0 Error

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

LOG

LOG(X [, Y])

Descripción

Si solo X está presente, LOG es un sinónimo de LN. Si Y también está presente, LOG calcula el logaritmo de X en base Y.

X Y LOG(X, Y)
100.0 10.0 2.0
-inf Cualquier valor NaN
Cualquier valor +inf NaN
+inf 0.0 Y < 1.0 -inf
+inf Y > 1.0 +inf
X <= 0 Cualquier valor Error
Cualquier valor Y <= 0 Error
Cualquier valor 1.0 Error

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
INT64FLOAT64NUMERICFLOAT64
NUMERICNUMERICNUMERICFLOAT64
FLOAT64FLOAT64FLOAT64FLOAT64

LOG10

LOG10(X)

Descripción

Similar a LOG, pero calcula el logaritmo en base 10.

X LOG10(X)
100.0 2.0
-inf NaN
+inf NaN
X <= 0 Error

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

GREATEST

GREATEST(X1,...,XN)

Descripción

Si no, muestra el valor más grande entre X1,…,XN según la comparación <. Si algunas partes de X1,…,XN son NULL, el valor que se muestra es NULL.

X1,...,XN GREATEST(X1,...,XN)
3,5,1 5

Tipos de datos mostrados

Tipo de datos de los valores de entrada.

LEAST

LEAST(X1,...,XN)

Descripción

Si no, muestra el valor más pequeño entre X1,…,XN según la comparación >. Si algunas partes de X1,…,XN son NULL, el valor que se muestra es NULL.

X1,...,XN LEAST(X1,...,XN)
3,5,1 1

Tipos de datos mostrados

Tipo de datos de los valores de entrada.

DIV

DIV(X, Y)

Descripción

Muestra el resultado de la división del número entero de X por Y. La división por cero muestra un error. La división por -1 se puede desbordar. Si ambas entradas son NUMERIC y el resultado es desbordamiento, muestra un error numeric overflow.

X S DIV(X, Y)
20 4 5
0 20 0
20 0 Error

Tipo de datos mostrados

El tipo de datos que se muestra se determina según los tipos de argumentos de la siguiente tabla.

INPUTINT64NUMERIC
INT64INT64NUMERIC
NUMERICNUMERICNUMERIC

SAFE_DIVIDE

SAFE_DIVIDE(X, Y)

Descripción

Equivale al operador de división (X / Y), pero muestra NULL si se produce un error, como un error de división por cero.

XSSAFE_DIVIDE(X, Y)
2045
0200
200NULL

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
INT64FLOAT64NUMERICFLOAT64
NUMERICNUMERICNUMERICFLOAT64
FLOAT64FLOAT64FLOAT64FLOAT64

SAFE_MULTIPLY

SAFE_MULTIPLY(X, Y)

Descripción

Equivalente al operador de multiplicación (*), pero muestra NULL si se produce un desbordamiento.

XSSAFE_MULTIPLY(X, Y)
20480

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
INT64INT64NUMERICFLOAT64
NUMERICNUMERICNUMERICFLOAT64
FLOAT64FLOAT64FLOAT64FLOAT64

SAFE_NEGATE

SAFE_NEGATE(X)

Descripción

Equivalente al operador unario menos (-), pero muestra NULL si se produce un desbordamiento.

XSAFE_NEGATE(X)
+1-1
-1+1
00

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTINT64NUMERICFLOAT64

SAFE_ADD

SAFE_ADD(X, Y)

Descripción

Equivale al operador de suma (+), pero muestra NULL si se produce un desbordamiento.

XSSAFE_ADD(X, Y)
549

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
INT64INT64NUMERICFLOAT64
NUMERICNUMERICNUMERICFLOAT64
FLOAT64FLOAT64FLOAT64FLOAT64

SAFE_SUBTRACT

SAFE_SUBTRACT(X, Y)

Descripción

Muestra el resultado de Y que se restó de X. Equivalente al operador de resta (-), pero muestra NULL si se produce un desbordamiento.

XSSAFE_SUBTRACT(X, Y)
541

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
INT64INT64NUMERICFLOAT64
NUMERICNUMERICNUMERICFLOAT64
FLOAT64FLOAT64FLOAT64FLOAT64

MOD

MOD(X, Y)

Descripción

Función de módulo: muestra el resto de la división de X por Y. El valor que se muestra tiene el mismo signo que X. Se generará un error si Y es 0.

X S MOD(X, Y)
25 12 1
25 0 Error

Tipo de datos mostrados

El tipo de datos que se muestra se determina según los tipos de argumentos de la siguiente tabla.

INPUTINT64NUMERIC
INT64INT64NUMERIC
NUMERICNUMERICNUMERIC

ROUND

ROUND(X [, N])

Descripción

Si solo está presente X, ROUND redondea X al número entero más cercano. Si N está presente, ROUND redondea X a N decimales después del punto decimal. Si N es negativo, ROUND redondeará los dígitos a la izquierda del punto decimal. Se redondean casos de punto medio en dirección opuesta al cero. Genera un error si se produce un desbordamiento.

X ROUND(X)
2.0 2.0
2.3 2.0
2.8 3.0
2.5 3.0
-2.3 -2.0
-2.8 -3.0
-2.5 -3.0
0 0
+inf +inf
-inf -inf
NaN NaN

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

TRUNC

TRUNC(X [, N])

Descripción

Si solo está presente X, TRUNC redondea X al número entero más cercano cuyo valor absoluto no es mayor que el valor absoluto de X. Si N también está presente, TRUNC se comporta como ROUND(X, N), pero siempre se redondea hacia cero y nunca se desborda.

X TRUNC(X)
2.0 2.0
2.3 2.0
2.8 2.0
2.5 2.0
-2.3 -2.0
-2.8 -2.0
-2.5 -2.0
0 0
+inf +inf
-inf -inf
NaN NaN

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

CEIL

CEIL(X)

Descripción

Muestra el valor integral más pequeño que no sea menor que X.

X CEIL(X)
2.0 2.0
2.3 3.0
2.8 3.0
2.5 3.0
-2.3 -2.0
-2.8 -2.0
-2.5 -2.0
0 0
+inf +inf
-inf -inf
NaN NaN

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

CEILING

CEILING(X)

Descripción

Sinónimo de CEIL(X)

FLOOR

FLOOR(X)

Descripción

Muestra el valor integral más grande que no sea mayor que X.

X FLOOR(X)
2.0 2.0
2.3 2.0
2.8 2.0
2.5 2.0
-2.3 -3.0
-2.8 -3.0
-2.5 -3.0
0 0
+inf +inf
-inf -inf
NaN NaN

Tipo de datos mostrados

INPUTINT64NUMERICFLOAT64
OUTPUTFLOAT64NUMERICFLOAT64

COS

COS(X)

Descripción

Calcula el coseno de X, en el que X se especifica en radianes. Nunca falla.

X COS(X)
+inf NaN
-inf NaN
NaN NaN

COSH

COSH(X)

Descripción

Calcula el coseno hiperbólico de X, en el que X se especifica en radianes. Genera un error si se produce un desbordamiento.

Si X es NUMERIC, el resultado es FLOAT64.

X COSH(X)
+inf +inf
-inf +inf
NaN NaN

ACOS

ACOS(X)

Descripción

Calcula el valor principal del coseno inverso de X. El valor de muestra está en el rango [0,π]. Genera un error si X es un valor fuera del rango [-1, 1].

Si X es NUMERIC, el resultado es FLOAT64.

X ACOS(X)
+inf NaN
-inf NaN
NaN NaN
X < -1 Error
X > 1 Error

ACOSH

ACOSH(X)

Descripción

Calcula el coseno hiperbólico inverso de X. Genera un error si X es un valor inferior a 1.

Si X es NUMERIC, el resultado es FLOAT64.

X ACOSH(X)
+inf +inf
-inf NaN
NaN NaN
X < 1 Error

SIN

SIN(X)

Descripción

Calcula el seno de X, en el que X se especifica en radianes. Nunca falla.

X SIN(X)
+inf NaN
-inf NaN
NaN NaN

SINH

SINH(X)

Descripción

Calcula el seno hiperbólico de X, en el que X se especifica en radianes. Genera un error si se produce un desbordamiento.

Si X es NUMERIC, el resultado es FLOAT64.

X SINH(X)
+inf +inf
-inf -inf
NaN NaN

ASIN

ASIN(X)

Descripción

Calcula el valor principal del seno inverso de X. El valor que se muestra está en el rango [-π/2,π/2]. Genera un error si X está fuera del rango [-1, 1].

Si X es NUMERIC, el resultado es FLOAT64.

X ASIN(X)
+inf NaN
-inf NaN
NaN NaN
X < -1 Error
X > 1 Error

ASINH

ASINH(X)

Descripción

Calcula el seno hiperbólico inverso de X. No falla.

Si X es NUMERIC, el resultado es FLOAT64.

X ASINH(X)
+inf +inf
-inf -inf
NaN NaN

TAN

TAN(X)

Descripción

Calcula la tangente de X, en la que X se especifica en radianes. Genera un error si se produce un desbordamiento.

X TAN(X)
+inf NaN
-inf NaN
NaN NaN

TANH

TANH(X)

Descripción

Calcula la tangente hiperbólica de X, en la que X se especifica en radianes. No falla.

Si X es NUMERIC, el resultado es FLOAT64.

X TANH(X)
+inf 1.0
-inf -1.0
NaN NaN

ATAN

ATAN(X)

Descripción

Calcula el valor principal de la tangente inversa de X. El valor que se muestra está en el rango [-π/2,π/2]. No falla.

Si X es NUMERIC, el resultado es FLOAT64.

X ATAN(X)
+inf π/2
-inf -π/2
NaN NaN

ATANH

ATANH(X)

Descripción

Calcula la tangente hiperbólica inversa de X. Genera un error si X está fuera del rango [-1, 1].

Si X es NUMERIC, el resultado es FLOAT64.

X ATANH(X)
+inf NaN
-inf NaN
NaN NaN
X < -1 Error
X > 1 Error

ATAN2

ATAN2(X, Y)

Descripción

Calcula el valor principal de la tangente inversa de X/Y con los signos de los dos argumentos para determinar el cuadrante. El valor que se muestra está en el rango [-π,π].

Si Y es NUMERIC, el resultado es FLOAT64.

X S ATAN2(X, Y)
NaN Cualquier valor NaN
Cualquier valor NaN NaN
0.0 0.0 0.0
Valor finito positivo -inf π
Valor finito negativo -inf
Valor finito +inf 0.0
+inf Valor finito π/2
-inf Valor finito -π/2
+inf -inf ¾π
-inf -inf -¾π
+inf +inf π/4
-inf +inf -π/4