Funciones y Operadores adicionales » Histórico » Revisión 3
Revisión 2 (Federico Vera, 2018-07-12 17:41) → Revisión 3/8 (Federico Vera, 2018-07-12 17:52)
# Funciones y Operadores adicionales {{>toc}} Existen un número de operadores y funciones adicionales incluidos en esta versión de There are a number of extra functions and operators included in this version of `exp4j`, ninguno de estos está activado por defecto, y se encuentran disponibles en el paquete [`net.objecthunter.exp4j.extras`](https://redmine.riddler.com.ar/projects/exp4j/repository/revisions/master/show/src/main/java/net/objecthunter/exp4j/extras). non of this are enabled by default, they are in the [`net.objecthunter.exp4j.extras`](https://redmine.riddler.com.ar/projects/exp4j/repository/revisions/master/show/src/main/java/net/objecthunter/exp4j/extras) package. ## Operadores de comparación Comparison Operators Además de los operadores aritméticos y lógicos, están disponibles los siguientes operadores de comparación: Aside from the arithmetic operators several comparison operators are included: `<`, `<=`, `>`, `>=`, `!=` y and `==`. Es importante notar que Please note that since `exp4j` itself has no tiene concepto de concept of `boolean`, los resultados entregados por los operadores de comparación son the results given by all of the comparison operators will be `1.0` para `verdadero` y if `true` and `0.0` para `falso`. Dado que pueden existir situaciones de redondeo, los operadores de igualdad utilizan un radio en el cual consideran if `false`. Let it be noted that due to rounding, equality operators use a los valores como "iguales", es decir: radix in which they consider numbers to be "equal", that is: Sean Let `a` y and `b` dos números reales, entonces be two real numbers, `a == b` será `verdadero` si la distancia entre will evaluate to `true` if and only if the distance between `a` y and `b` (`dist(a, b) := abs(a - b)`) es menor o igual a is less or equal than [`1e-12` (`0.000000000001`)](https://redmine.riddler.com.ar/projects/exp4j/repository/revisions/master/entry/src/main/java/net/objecthunter/exp4j/extras/FunctionsMisc.java#L38) y `falso` de otra forma. and `false` otherwise. ### Precedencia Precedence Al utilizar los operadores de comparación, la precedencia se altera quedando: Operator precedence is altered when using the comparison operators, the new precedence is: ~~~ PRIMERO-> FIRST-> * / % - + > >= < <= ¬ & | == != <-ÚLTIMO <-LAST ----- --- --------- - - - ----- ^^^ Los guiones indican los grupos que tienen la misma precedencia The dashes indicate groups with the same precedence ~~~ ## 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) Even though we have boolean operators, there are also a number of boolean functions that can be used (some people prefer functions) * `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. * `sinc(x)`: [Seno cardinal de `x`](https://en.wikipedia.org/wiki/Sinc_function) (no normalizado), equivalente a `sin(x)/x` ## Código El código está [aquí](https://redmine.riddler.com.ar/projects/exp4j/repository/revisions/master/entry/src/main/java/net/objecthunter/exp4j/extras/OperatorsComparison.java), [aquí](https://redmine.riddler.com.ar/projects/exp4j/repository/revisions/master/entry/src/main/java/net/objecthunter/exp4j/extras/FunctionsMisc.java) u [aquí](https://redmine.riddler.com.ar/projects/exp4j/repository/revisions/master/entry/src/main/java/net/objecthunter/exp4j/extras/FunctionsBoolean.java).Volver al inicio