Extra Functions and Operators¶
- Índice de contenidos
- Extra Functions and Operators
There are a number of extra functions and operators included in this version of exp4j
, non of this are enabled by default, they are in the net.objecthunter.exp4j.extras
package.
Comparison Operators¶
Aside from the arithmetic operators several comparison operators are included: <
, <=
, >
, >=
, !=
and ==
.
Please note that since exp4j
itself has no concept of boolean
, the results given by all of the comparison operators will be 1.0
if true
and 0.0
if false
. Let it be noted that due to rounding, equality operators use a radix in which they consider numbers to be "equal", that is:
Let a
and b
be two real numbers, a == b
will evaluate to true
if and only if the distance between a
and b
(dist(a, b) := abs(a - b)
) is less or equal than [1e-12
(0.000000000001
)]
(https://redmine.riddler.com.ar/projects/exp4j/repository/exp4j/revisions/master/entry/src/main/java/net/objecthunter/exp4j/operator/Operator.java#L74) and false
otherwise.
Precedence¶
Operator precedence is altered when using the comparison operators, the new precedence is:
FIRST-> * / % - + > >= < <= ¬ & | == != <-LAST
----- --- --------- - - - -----
^^^ The dashes indicate groups with the same precedence
Warning!¶
See Warning -> Concatenating Comparison Operators
Boolean Functions¶
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)
: Logical and equivalent toa & b
-
or(a, b)
: Logical or equivalent toa | b
-
xor(a, b)
: Exclusive or -
nand(a, b)
: equivalent to¬(a & b)
-
nor(a, b)
: equivalent to¬(a | b)
-
xnor(a, b)
: Negated exclusive or -
not(a)
: equivalent to¬a
Boolean Constants¶
-
true()
: true value1.0
(true is actually any value different than zero, but this is the value returned by comparison operators, boolean operators and boolean functions. -
false()
: false value0.0
Extra Functions¶
-
if(e, v_true, v_false)
: Branches the formula, it will be evaluated asv_true
ife == true()
andv_false
ife == false()
-
equals(a, b)
: Equivalent toa == b
, so the same conditions apply. -
isNan(a)
: Tells if a value isNot A Number
-
min(x, y)
: Returns the smallest (closest to negative infinity) of two numbers. -
max(x, y)
: Returns the largest (closest to positive infinity) of two numbers. -
lcm(x, y)
: Returns the Least Common Multiple of two numbers. -
gcd(x, y)
: Returns the Greatest Common Divisor of two numbers. -
round(x)
: Returns the closest integer ofx
. -
deg2rad(x)
: Returns the value ofx
expressed in radians. -
rad2deg(x)
: Returns the value ofx
expressed in degrees.
Signal Functions¶
-
sinc(t)
: Cardinal sine oft
(not normalized), equivalent tosin(t)/t
-
triangle(t)
: Triangle wave -
sawtooth(t)
: Sawtooth wave -
heavyside(t)
: Heavyside Step function -
rectangle(t, X, Y)
: Rectangular function
Extra constants¶
-
inf()
: Retrieves the value ofDouble.POSITIVE_INFINITY
Expression based functions¶
- It's now possible to create expression based functions! See: Expression Based Functions
Code¶
Actualizado por Federico Vera hace casi 6 años · 11 revisiones
Volver al inicio