Project

General

Profile

Actions

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 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.
  • deg2rad(x): Devuelve el valor de x expresado en radianes.
  • rad2deg(x): Devuelve el valor de x expresado en grados.

Funciones relacionadas con señales

  • sinc(t): Seno cardinal de x (no normalizado), equivalente a sin(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 de Double.POSITIVE_INFINITY

Funciones basadas en expresiones

Código

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

Updated by Federico Vera over 2 years ago · 8 revisions

Go to top