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 as `Functions` except operating on integers.

  For aliasing see `intFunctions`.

  Version:
    1.0, 09/24/99

- - ### Field Summary

    Fields
    Modifier and Type | Field and 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`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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`.

    - ### Methods inherited from class java.lang.Object

      `equals, 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`.

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

Jump to the Colt Homepage