Funciones y Operadores adicionales¶
- Table of contents
- Funciones y Operadores adicionales
Existen un número de operadores y funciones adicionales incluidos en esta versión de exp4j, ninguno de estos está activado por defecto, y se encuentran disponibles en el paquete net.objecthunter.exp4j.extras.
Operadores de comparación¶
Además de los operadores aritméticos y lógicos, están disponibles los siguientes operadores de comparación: <, <=, >, >=, != y ==.
Es importante notar que exp4j no tiene concepto de boolean, los resultados entregados por los operadores de comparación son 1.0 para verdadero y 0.0 para falso. Dado que pueden existir situaciones de redondeo, los operadores de igualdad utilizan un radio en el cual consideran a los valores como "iguales", es decir:
Sean a y b dos números reales, entonces a == b será verdadero si la distancia entre a y b (dist(a, b) := abs(a - b)) es menor o igual a 1e-12 (0.000000000001) y falso de otra forma.
Precedencia¶
Al utilizar los operadores de comparación, la precedencia se altera quedando:
PRIMERO-> * / % - + > >= < <= ¬ & | == != <-ÚLTIMO
----- --- --------- - - - -----
^^^ Los guiones indican los grupos que tienen la misma precedencia
Advertencia!¶
See Advertencias -> Concatenar Operadores de Comparación
Funciones lógicas¶
Aunque existen operadores lógicos incluidos, se dispone también de un número de funciones booleans que pueden ser utilizadas (existen quienes prefieren las funciones)
-
and(a, b): Y lógico equivalente aa & b -
or(a, b): O lógico equivalente aa | b -
xor(a, b): O exclusivo -
nand(a, b): equivalente a¬(a & b) -
nor(a, b): equivalente a¬(a | b) -
xnor(a, b): O exclusivo negado -
not(a): equivalente a¬a
Constantes lógicas¶
-
true(): verdadero (1.0) (se considera como verdadero a cualquier valor distinto de cero, pero la funcióntrue()devuelve1.0así como los operadores booleans y de comparación. -
false(): falso (0.0)
Funciones adicionales¶
-
if(e, v_true, v_false): Ramifica la expresión, se evalúa comov_truesie == true()yv_falsesie == false() -
equals(a, b): Equivalente aa == b, por lo tanto se cumplen las mismas condiciones. -
isNan(a): Dice si un valor esNo es un número(NaN) -
min(x, y): Devuelve el menor (más cercano a -Infinito) de dos números. -
max(x, y): Devuelve el mayor (más cercano a +Infinito) de dos números. -
lcm(x, y): Devuelve el mínimo común múltiplo de dos números. -
gcd(x, y): Devuelve el máximo común divisor de dos números. -
round(x): Rendondeaxal entero mas cercano. -
deg2rad(x): Devuelve el valor dexexpresado en radianes. -
rad2deg(x): Devuelve el valor dexexpresado en grados.
Funciones relacionadas con señales¶
-
sinc(t): Seno cardinal dex(no normalizado), equivalente asin(t)/t -
triangle(t): Señal triangular -
sawtooth(t): Señal diente de sierra -
heavyside(t): Función escalón -
rectangle(t, X, Y): Función rectángula
Constantes adicionales¶
-
inf(): Devuelve el valor deDouble.POSITIVE_INFINITY
Funciones basadas en expresiones¶
- Ahora es posible crear funciones basadas en expresiones! Ver: Funciones basadas en expresiones
Código¶
Updated by Federico Vera over 7 years ago · 8 revisions