Project

General

Profile

Actions

Funciones y Operadores adicionales » History » Revision 4

« Previous | Revision 4/8 (diff) | Next »
Federico Vera, 2018-07-17 05:31


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

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 a a & b
  • or(a, b): O lógico equivalente a a | 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ón true() devuelve 1.0 así 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 como v_true si e == true() y v_false si e == false()
  • equals(a, b): Equivalente a a == b, por lo tanto se cumplen las mismas condiciones.
  • isNan(a): Dice si un valor es No 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): Rendondea x al entero mas cercano.
  • sinc(x): Seno cardinal de x (no normalizado), equivalente a sin(x)/x

Constantes adicionales

  • inf(): Devuelve el valor de Double.POSITIVE_INFINITY

Código

El código está aquí, aquí u aquí.

Updated by Federico Vera almost 3 years ago · 4 revisions

Go to top