cern.jet.math
Class IntFunctions

java.lang.Object
  extended by cern.jet.math.IntFunctions

public class IntFunctions
extends java.lang.Object

Integer Function objects to be passed to generic methods. Same as Functions except operating on integers.

For aliasing see intFunctions.

Author:
wolfgang.hoschek@cern.ch

Field Summary
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
protected IntFunctions()
          Makes this class non instantiable, but still let's others inherit from it.
 
Method Summary
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

intFunctions

public static final IntFunctions intFunctions
Little trick to allow for "aliasing", that is, renaming this class. Writing code like

IntFunctions.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.

Constructor Detail

IntFunctions

protected IntFunctions()
Makes this class non instantiable, but still let's others inherit from it.

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 is MersenneTwister and is seeded with the current time.

Note that any random engine derived from RandomEngine and any random distribution derived from AbstractDistribution 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.