Extra Functions and Operators¶
- Table of contents
- 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
) 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 ornand(a, b)
: equivalent to¬(a & b)
nor(a, b)
: equivalent to¬(a | b)
xnor(a, b)
: Negated exclusive ornot(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 wavesawtooth(t)
: Sawtooth waveheavyside(t)
: Heavyside Step functionrectangle(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¶
Updated by Federico Vera about 2 years ago · 11 revisions
Go to top