Package cern.jet.math
Class IntFunctions
- java.lang.Object
-
- cern.jet.math.IntFunctions
-
public class IntFunctions extends java.lang.Object
Integer Function objects to be passed to generic methods. Same asFunctions
except operating on integers.For aliasing see
intFunctions
.- Version:
- 1.0, 09/24/99
-
-
Field Summary
Fields Modifier and Type Field Description static IntFunction
abs
Function that returns Math.abs(a) == (a < 0) ? -a : a.static IntIntFunction
and
Function that returns a & b.static IntIntFunction
compare
Function that returns a < b ? -1 : a > b ? 1 : 0.static IntFunction
dec
Function that returns a--.static IntIntFunction
div
Function that returns a / b.static IntIntFunction
equals
Function that returns a == b ? 1 : 0.static IntFunction
factorial
Function that returns (int) Arithmetic.factorial(a).static IntFunction
identity
Function that returns its argument.static IntFunction
inc
Function that returns a++.static IntFunctions
intFunctions
Little trick to allow for "aliasing", that is, renaming this class.static IntIntProcedure
isEqual
Function that returns a == b.static IntIntProcedure
isGreater
Function that returns a > b.static IntIntProcedure
isLess
Function that returns a < b.static IntIntFunction
max
Function that returns Math.max(a,b).static IntIntFunction
min
Function that returns Math.min(a,b).static IntIntFunction
minus
Function that returns a - b.static IntIntFunction
mod
Function that returns a % b.static IntIntFunction
mult
Function that returns a * b.static IntFunction
neg
Function that returns -a.static IntFunction
not
Function that returns ~a.static IntIntFunction
or
Function that returns a | b.static IntIntFunction
plus
Function that returns a + b.static IntIntFunction
pow
Function that returns (int) Math.pow(a,b).static IntIntFunction
shiftLeft
Function that returns a << b.static IntIntFunction
shiftRightSigned
Function that returns a >> b.static IntIntFunction
shiftRightUnsigned
Function that returns a >>> b.static IntFunction
sign
Function that returns a < 0 ? -1 : a > 0 ? 1 : 0.static IntFunction
square
Function that returns a * a.static IntIntFunction
xor
Function that returns a ^ b.
-
Constructor Summary
Constructors Modifier Constructor Description protected
IntFunctions()
Makes this class non instantiable, but still let's others inherit from it.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static IntFunction
and(int b)
Constructs a function that returns a & b.static IntFunction
between(int from, int to)
Constructs a function that returns (from<=a && a<=to) ? 1 : 0.static IntFunction
bindArg1(IntIntFunction function, int c)
Constructs a unary function from a binary function with the first operand (argument) fixed to the given constant c.static IntFunction
bindArg2(IntIntFunction function, int c)
Constructs a unary function from a binary function with the second operand (argument) fixed to the given constant c.static IntFunction
chain(IntFunction g, IntFunction h)
Constructs the function g( h(a) ).static IntIntFunction
chain(IntFunction g, IntIntFunction h)
Constructs the function g( h(a,b) ).static IntIntFunction
chain(IntIntFunction f, IntFunction g, IntFunction h)
Constructs the function f( g(a), h(b) ).static IntFunction
compare(int b)
Constructs a function that returns a < b ? -1 : a > b ? 1 : 0.static IntFunction
constant(int c)
Constructs a function that returns the constant c.static IntFunction
div(int b)
Constructs a function that returns a / b.static IntFunction
equals(int b)
Constructs a function that returns a == b ? 1 : 0.static IntProcedure
isBetween(int from, int to)
Constructs a function that returns from<=a && a<=to.static IntProcedure
isEqual(int b)
Constructs a function that returns a == b.static IntProcedure
isGreater(int b)
Constructs a function that returns a > b.static IntProcedure
isLess(int b)
Constructs a function that returns a < b.static IntFunction
max(int b)
Constructs a function that returns Math.max(a,b).static IntFunction
min(int b)
Constructs a function that returns Math.min(a,b).static IntFunction
minus(int b)
Constructs a function that returns a - b.static IntFunction
mod(int b)
Constructs a function that returns a % b.static IntFunction
mult(int b)
Constructs a function that returns a * b.static IntFunction
or(int b)
Constructs a function that returns a | b.static IntFunction
plus(int b)
Constructs a function that returns a + b.static IntFunction
pow(int b)
Constructs a function that returns (int) Math.pow(a,b).static IntFunction
random()
Constructs a function that returns a 32 bit uniformly distributed random number in the closed interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including Integer.MIN_VALUE and Integer.MAX_VALUE).static IntFunction
shiftLeft(int b)
Constructs a function that returns a << b.static IntFunction
shiftRightSigned(int b)
Constructs a function that returns a >> b.static IntFunction
shiftRightUnsigned(int b)
Constructs a function that returns a >>> b.static IntIntFunction
swapArgs(IntIntFunction function)
Constructs a function that returns function.apply(b,a), i.e.static IntFunction
xor(int b)
Constructs a function that returns a | b.
-
-
-
Field Detail
-
intFunctions
public static final IntFunctions intFunctions
Little trick to allow for "aliasing", that is, renaming this class. Writing code likeIntFunctions.chain(IntFunctions.plus,IntFunctions.mult(3),IntFunctions.chain(IntFunctions.square,IntFunctions.div(2)));
is a bit awkward, to say the least. Using the aliasing you can instead write
IntFunctions F = IntFunctions.intFunctions;
F.chain(F.plus,F.mult(3),F.chain(F.square,F.div(2)));
-
abs
public static final IntFunction abs
Function that returns Math.abs(a) == (a < 0) ? -a : a.
-
dec
public static final IntFunction dec
Function that returns a--.
-
factorial
public static final IntFunction factorial
Function that returns (int) Arithmetic.factorial(a).
-
identity
public static final IntFunction identity
Function that returns its argument.
-
inc
public static final IntFunction inc
Function that returns a++.
-
neg
public static final IntFunction neg
Function that returns -a.
-
not
public static final IntFunction not
Function that returns ~a.
-
sign
public static final IntFunction sign
Function that returns a < 0 ? -1 : a > 0 ? 1 : 0.
-
square
public static final IntFunction square
Function that returns a * a.
-
and
public static final IntIntFunction and
Function that returns a & b.
-
compare
public static final IntIntFunction compare
Function that returns a < b ? -1 : a > b ? 1 : 0.
-
div
public static final IntIntFunction div
Function that returns a / b.
-
equals
public static final IntIntFunction equals
Function that returns a == b ? 1 : 0.
-
isEqual
public static final IntIntProcedure isEqual
Function that returns a == b.
-
isLess
public static final IntIntProcedure isLess
Function that returns a < b.
-
isGreater
public static final IntIntProcedure isGreater
Function that returns a > b.
-
max
public static final IntIntFunction max
Function that returns Math.max(a,b).
-
min
public static final IntIntFunction min
Function that returns Math.min(a,b).
-
minus
public static final IntIntFunction minus
Function that returns a - b.
-
mod
public static final IntIntFunction mod
Function that returns a % b.
-
mult
public static final IntIntFunction mult
Function that returns a * b.
-
or
public static final IntIntFunction or
Function that returns a | b.
-
plus
public static final IntIntFunction plus
Function that returns a + b.
-
pow
public static final IntIntFunction pow
Function that returns (int) Math.pow(a,b).
-
shiftLeft
public static final IntIntFunction shiftLeft
Function that returns a << b.
-
shiftRightSigned
public static final IntIntFunction shiftRightSigned
Function that returns a >> b.
-
shiftRightUnsigned
public static final IntIntFunction shiftRightUnsigned
Function that returns a >>> b.
-
xor
public static final IntIntFunction xor
Function that returns a ^ b.
-
-
Method Detail
-
and
public static IntFunction and(int b)
Constructs a function that returns a & b. a is a variable, b is fixed.
-
between
public static IntFunction between(int from, int to)
Constructs a function that returns (from<=a && a<=to) ? 1 : 0. a is a variable, from and to are fixed.
-
bindArg1
public static IntFunction bindArg1(IntIntFunction function, int c)
Constructs a unary function from a binary function with the first operand (argument) fixed to the given constant c. The second operand is variable (free).- Parameters:
function
- a binary function taking operands in the form function.apply(c,var).- Returns:
- the unary function function(c,var).
-
bindArg2
public static IntFunction bindArg2(IntIntFunction function, int c)
Constructs a unary function from a binary function with the second operand (argument) fixed to the given constant c. The first operand is variable (free).- Parameters:
function
- a binary function taking operands in the form function.apply(var,c).- Returns:
- the unary function function(var,c).
-
chain
public static IntFunction chain(IntFunction g, IntFunction h)
Constructs the function g( h(a) ).- Parameters:
g
- a unary function.h
- a unary function.- Returns:
- the unary function g( h(a) ).
-
chain
public static IntIntFunction chain(IntFunction g, IntIntFunction h)
Constructs the function g( h(a,b) ).- Parameters:
g
- a unary function.h
- a binary function.- Returns:
- the unary function g( h(a,b) ).
-
chain
public static IntIntFunction chain(IntIntFunction f, IntFunction g, IntFunction h)
Constructs the function f( g(a), h(b) ).- Parameters:
f
- a binary function.g
- a unary function.h
- a unary function.- Returns:
- the binary function f( g(a), h(b) ).
-
compare
public static IntFunction compare(int b)
Constructs a function that returns a < b ? -1 : a > b ? 1 : 0. a is a variable, b is fixed.
-
constant
public static IntFunction constant(int c)
Constructs a function that returns the constant c.
-
div
public static IntFunction div(int b)
Constructs a function that returns a / b. a is a variable, b is fixed.
-
equals
public static IntFunction equals(int b)
Constructs a function that returns a == b ? 1 : 0. a is a variable, b is fixed.
-
isBetween
public static IntProcedure isBetween(int from, int to)
Constructs a function that returns from<=a && a<=to. a is a variable, from and to are fixed.
-
isEqual
public static IntProcedure isEqual(int b)
Constructs a function that returns a == b. a is a variable, b is fixed.
-
isGreater
public static IntProcedure isGreater(int b)
Constructs a function that returns a > b. a is a variable, b is fixed.
-
isLess
public static IntProcedure isLess(int b)
Constructs a function that returns a < b. a is a variable, b is fixed.
-
max
public static IntFunction max(int b)
Constructs a function that returns Math.max(a,b). a is a variable, b is fixed.
-
min
public static IntFunction min(int b)
Constructs a function that returns Math.min(a,b). a is a variable, b is fixed.
-
minus
public static IntFunction minus(int b)
Constructs a function that returns a - b. a is a variable, b is fixed.
-
mod
public static IntFunction mod(int b)
Constructs a function that returns a % b. a is a variable, b is fixed.
-
mult
public static IntFunction mult(int b)
Constructs a function that returns a * b. a is a variable, b is fixed.
-
or
public static IntFunction or(int b)
Constructs a function that returns a | b. a is a variable, b is fixed.
-
plus
public static IntFunction plus(int b)
Constructs a function that returns a + b. a is a variable, b is fixed.
-
pow
public static IntFunction pow(int b)
Constructs a function that returns (int) Math.pow(a,b). a is a variable, b is fixed.
-
random
public static IntFunction random()
Constructs a function that returns a 32 bit uniformly distributed random number in the closed interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including Integer.MIN_VALUE and Integer.MAX_VALUE). Currently the engine isMersenneTwister
and is seeded with the current time.Note that any random engine derived from
RandomEngine
and any random distribution derived fromAbstractDistribution
are function objects, because they implement the proper interfaces. Thus, if you are not happy with the default, just pass your favourite random generator to function evaluating methods.
-
shiftLeft
public static IntFunction shiftLeft(int b)
Constructs a function that returns a << b. a is a variable, b is fixed.
-
shiftRightSigned
public static IntFunction shiftRightSigned(int b)
Constructs a function that returns a >> b. a is a variable, b is fixed.
-
shiftRightUnsigned
public static IntFunction shiftRightUnsigned(int b)
Constructs a function that returns a >>> b. a is a variable, b is fixed.
-
swapArgs
public static IntIntFunction swapArgs(IntIntFunction function)
Constructs a function that returns function.apply(b,a), i.e. applies the function with the first operand as second operand and the second operand as first operand.- Parameters:
function
- a function taking operands in the form function.apply(a,b).- Returns:
- the binary function function(b,a).
-
xor
public static IntFunction xor(int b)
Constructs a function that returns a | b. a is a variable, b is fixed.
-
-