Package: org.codehaus.groovy.vmplugin.v8

## [Java] Class IndyMath

- org.codehaus.groovy.vmplugin.v8.IndyMath

-     public class IndyMath
      extends Object

  This class contains math operations used by indy instead of the normal meta method and call site caching system. The goal is to avoid boxing, thus use primitive types for parameters and return types where possible. WARNING: This class is for internal use only. Do not use it outside the org.codehaus.groovy.vmplugin.v8 package of groovy-core.

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public static int` | `and(int a, int b)`
    `` | `public static long` | `and(long a, long b)`
    `` | `public static boolean` | `chooseMathMethod(Selector info, MetaMethod metaMethod)` Choose a method to replace the originally chosen metaMethod to have a more efficient call path.
    `` | `public static double` | `div(double a, double b)`
    `` | `public static int` | `leftShift(int a, int b)`
    `` | `public static long` | `leftShift(long a, long b)`
    `` | `public static int` | `minus(int a, int b)`
    `` | `public static long` | `minus(long a, long b)`
    `` | `public static double` | `minus(double a, double b)`
    `` | `public static int` | `mod(int a, int b)`
    `` | `public static long` | `mod(long a, long b)`
    `` | `public static int` | `multiply(int a, int b)`
    `` | `public static long` | `multiply(long a, long b)`
    `` | `public static double` | `multiply(double a, double b)`
    `` | `public static int` | `next(int i)`
    `` | `public static long` | `next(long l)`
    `` | `public static double` | `next(double d)`
    `` | `public static int` | `or(int a, int b)`
    `` | `public static long` | `or(long a, long b)`
    `` | `public static int` | `plus(int a, int b)`
    `` | `public static long` | `plus(long a, long b)`
    `` | `public static double` | `plus(double a, double b)`
    `` | `public static int` | `previous(int i)`
    `` | `public static long` | `previous(long l)`
    `` | `public static double` | `previous(double d)`
    `` | `public static int` | `remainder(int a, int b)`
    `` | `public static long` | `remainder(long a, long b)`
    `` | `public static int` | `rightShift(int a, int b)`
    `` | `public static long` | `rightShift(long a, long b)`
    `` | `public static int` | `xor(int a, int b)`
    `` | `public static long` | `xor(long a, long b)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### public static int and(int a, int b)

    - #### public static long and(long a, long b)

    - #### public static boolean chooseMathMethod(Selector info, MetaMethod metaMethod)

      Choose a method to replace the originally chosen metaMethod to have a more efficient call path.

    - #### public static double div(double a, double b)

    - #### public static int leftShift(int a, int b)

    - #### public static long leftShift(long a, long b)

    - #### public static int minus(int a, int b)

    - #### public static long minus(long a, long b)

    - #### public static double minus(double a, double b)

    - #### public static int mod(int a, int b)

    - #### public static long mod(long a, long b)

    - #### public static int multiply(int a, int b)

    - #### public static long multiply(long a, long b)

    - #### public static double multiply(double a, double b)

    - #### public static int next(int i)

    - #### public static long next(long l)

    - #### public static double next(double d)

    - #### public static int or(int a, int b)

    - #### public static long or(long a, long b)

    - #### public static int plus(int a, int b)

    - #### public static long plus(long a, long b)

    - #### public static double plus(double a, double b)

    - #### public static int previous(int i)

    - #### public static long previous(long l)

    - #### public static double previous(double d)

    - #### public static int remainder(int a, int b)

    - #### public static long remainder(long a, long b)

    - #### public static int rightShift(int a, int b)

    - #### public static long rightShift(long a, long b)

    - #### public static int xor(int a, int b)

    - #### public static long xor(long a, long b)